Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法从azure blob存储下载blob_Python_Azure Blob Storage - Fatal编程技术网

Python 无法从azure blob存储下载blob

Python 无法从azure blob存储下载blob,python,azure-blob-storage,Python,Azure Blob Storage,我正在尝试从azure blob的子目录下载blob。我只能下载很少的文件,但对于剩余的文件,它抛出“HTTP状态代码=416,异常=指定的范围对于资源的当前大小无效。错误代码:InvalidRange”。我可以直接从azure下载Blob,但以编程方式下载的Blob很少以下是有关错误的描述,请参阅有关存储服务的官方文档 由于您的描述中没有任何代码,我将我的示例代码发布在这里作为参考 from azure.storage.blob.baseblobservice import BaseBlob

我正在尝试从azure blob的子目录下载blob。我只能下载很少的文件,但对于剩余的文件,它抛出“HTTP状态代码=416,异常=指定的范围对于资源的当前大小无效。错误代码:InvalidRange”。我可以直接从azure下载Blob,但以编程方式下载的Blob很少

以下是有关错误的描述,请参阅有关存储服务的官方文档

由于您的描述中没有任何代码,我将我的示例代码发布在这里作为参考

from azure.storage.blob.baseblobservice import BaseBlobService

import os

account_name = '<your account name>'
account_key = '<your account key>'

blob_service = BaseBlobService(
    account_name=account_name,
    account_key=account_key
)

container_name = '<your container name, such as `test`'

# Virtual Directory Name as the prefix string of a blob name
prefix = '<the blob name prefix, such as `images`>' 

# local directory path for downloading blobs
local_path = '<a local directory path for downloading, such as `download`>' 

blobs = blob_service.list_blobs(container_name, prefix=prefix)

for blob in blobs:
    blob_name = blob.name
    blob_base_name = os.path.basename(blob_name)
    file_path = '%s/%s' % (local_path, blob_base_name)
    blob_service.get_blob_to_path(container_name, blob_name, file_path)
从azure.storage.blob.baseblobservice导入baseblobservice
导入操作系统
帐户名称=“”
帐户密钥=“”
blob_服务=BaseBlobService(
账户名称=账户名称,
帐户密钥=帐户密钥
)

container_name='以下是有关错误的说明,请参阅有关存储服务的官方文档

由于您的描述中没有任何代码,我将我的示例代码发布在这里作为参考

from azure.storage.blob.baseblobservice import BaseBlobService

import os

account_name = '<your account name>'
account_key = '<your account key>'

blob_service = BaseBlobService(
    account_name=account_name,
    account_key=account_key
)

container_name = '<your container name, such as `test`'

# Virtual Directory Name as the prefix string of a blob name
prefix = '<the blob name prefix, such as `images`>' 

# local directory path for downloading blobs
local_path = '<a local directory path for downloading, such as `download`>' 

blobs = blob_service.list_blobs(container_name, prefix=prefix)

for blob in blobs:
    blob_name = blob.name
    blob_base_name = os.path.basename(blob_name)
    file_path = '%s/%s' % (local_path, blob_base_name)
    blob_service.get_blob_to_path(container_name, blob_name, file_path)
从azure.storage.blob.baseblobservice导入baseblobservice
导入操作系统
帐户名称=“”
帐户密钥=“”
blob_服务=BaseBlobService(
账户名称=账户名称,
帐户密钥=帐户密钥
)

container_name='我在尝试下载一个空blob时遇到了这个错误。使用Peter Pan的代码,您需要添加一个空检查

blob_info = blob_service.get_blob_properties(container_name, blob_name)
if blob_info.properties.content_length == 0:
    return "empty blob"

当我试图下载一个空的blob时,我遇到了这个错误。使用Peter Pan的代码,您需要添加一个空检查

blob_info = blob_service.get_blob_properties(container_name, blob_name)
if blob_info.properties.content_length == 0:
    return "empty blob"

对于长度为零的blob,很可能会出现这些异常。在这里(Microsoft Azure Storage SDK for Python问题:),他们说您可以安全地忽略这些异常—捕获并吞咽。这些文件仍能正确下载:

我相信,当您尝试下载一个零长度的blob时,就会显示此错误。您可以通过在尝试下载之前检查blob属性来绕过它,或者干脆让它发生——文件按原样下载


我验证了它,并且可以确认如果这些异常被吞没,零长度的文件被正确下载。

对于零长度的blob,您很可能会得到这些异常。在这里(Microsoft Azure Storage SDK for Python问题:),他们说您可以安全地忽略这些异常—捕获并吞咽。这些文件仍能正确下载:

我相信,当您尝试下载一个零长度的blob时,就会显示此错误。您可以通过在尝试下载之前检查blob属性来绕过它,或者干脆让它发生——文件按原样下载


我验证了它,并且可以确认,如果这些异常被接受,零长度文件已正确下载。

欢迎访问该网站。请添加有关当前python实现的更多详细信息。请添加代码以及具体要完成的任务。Blob是否在虚拟文件夹或容器中?您是否指定了要下载Blob的范围/大小限制?欢迎访问该网站。请添加有关当前python实现的更多详细信息。请添加代码以及具体要完成的任务。Blob是否在虚拟文件夹或容器中?您是否指定了要下载Blob的范围/大小限制?谢谢,但我收到了谢谢,但我收到了