Python 无法从azure blob存储下载blob
我正在尝试从azure blob的子目录下载blob。我只能下载很少的文件,但对于剩余的文件,它抛出“HTTP状态代码=416,异常=指定的范围对于资源的当前大小无效。错误代码:InvalidRange”。我可以直接从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
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的范围/大小限制?谢谢,但我收到了谢谢,但我收到了