我正在尝试使用本地python将csv / pdf文件上传到azure blob存储。
我遵循了这个post,但这会引发错误,
from azure.storage.blob import BlockBlobService
from azure.storage.blob import ContentSettings
block_blob_service = BlockBlobService(account_name='account_name', account_key='key1')
block_blob_service.create_container('cn1')
block_blob_service.set_container_acl('cn1', public_access=PublicAccess.Container)
#Upload the CSV file to Azure cloud
block_blob_service.create_blob_from_path(
'mycontainer',
'C:/uploads/blob.csv',
'C:/uploads/blob.pdf',
content_settings=ContentSettings(content_type='application/CSV')
)
上传后我想使用上传的文件进行处理。
追踪(最近一次呼叫最后一次):
文件"",第1行,in block_blob_service.create_container(' CN1&#39)
文件 " C:\用户\ rb287jd \应用程序数据\本地\程序\蟒\ python36 \ lib中\站点包\天青\存储\斑点\ baseblobservice.py&#34 ;, 第600行,在create_container中 self._perform_request(请求)
文件 " C:\用户\ rb287jd \应用程序数据\本地\程序\蟒\ python36 \ lib中\站点包\天青\存储\ storageclient.py&#34 ;, 第280行,在_perform_request中 提出前的
文件 " C:\用户\ rb287jd \应用程序数据\本地\程序\蟒\ python36 \ lib中\站点包\天青\存储\ storageclient.py&#34 ;, 第252行,在_perform_request中 引发AzureException(ex.args [0])
AzureException: HTTPSConnectionPool(主机=' account_name.blob.core.windows.net&#39 ;, port = 443):使用url:/ cn1?restype = container超出了最大重试次数 (引起的 ConnectTimeoutError(,'连接到 account_name.blob.core.windows.net超时。 (连接超时= 20)'))
答案 0 :(得分:0)
您可以尝试以下更改吗?
a)添加缺少的导入:
from azure.storage.blob import PublicAccess
b)如果您正在使用Azure存储模拟器,请按如下所示创建阻止blob服务:
block_blob_service = BlockBlobService(is_emulated=True)
c)将容器名称更改为 cn1 ,而不是 mycontainer ,这是在代码的早期创建的
block_blob_service.create_blob_from_path(
'cn1',
'C:/temp/blob.csv',
'C:/temp/blob.pdf',
content_settings=ContentSettings(content_type='application/CSV'))
另外,请确保:
a)Azure存储模拟器在本地测试期间运行。在https://docs.microsoft.com/en-us/azure/storage/common/storage-use-emulator了解更多详情。
b)通过使用存储资源管理器(https://azure.microsoft.com/en-us/features/storage-explorer/)打开,您拥有正确的存储帐户名称和密钥。
我能够使用适当的方法签名在Azure存储模拟器和Azure本身上完成上述更改之后使用该脚本来创建块blob服务。
答案 1 :(得分:0)
如果你看一下错误: AzureException: HTTPSConnectionPool(host='account_name.blob.core.windows.net', port=443):
这意味着以下任何一项: