我尝试直接从我的python脚本(VSC)上传一个json文件到Azure blob容器。
以下是我尝试过的:
account_url = "https://containerxyz.blob.core.windows.net"
default_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(account_url, credential=default_credential)
container_name = 'https://containerxyz.blob.core.windows.net/a/b/raw/'
file = 'test.txt'
contents = 'test'
blob_client = blob_service_client.get_blob_client(container=container_name, blob=contents)
blob_client.upload_blob(name=file, data=contents, overwrite=True)
字符串
我甚至没有得到一个错误代码,它只是运行,从来没有停止,我最终中断内核后,几分钟。
同样的事情发生了,当我尝试它有点不同:
data = 'test'
container_client = blob_service_client.get_container_client(container=container_name)
container_client.upload_blob(name="test.txt", data=data, overwrite=True)
型
我试过遵循Azure文档,但他们总是使用本地文件并使用“with open(...)”将其上传到Azure的示例,例如:https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python
如果我在upload_blob()
函数之前运行所有的东西,它运行时没有错误,所以我假设问题就在那里。
2条答案
按热度按时间oxcyiej71#
我的帐户名是“containerxyz”,在该帐户中我有多个目录,我想上传blob到“/a/b/raw”。所以容器名是“a/B/raw”?我试过了,也遇到了同样的问题。
在本例中,容器名称为
a
。如果你想上传b/raw
文件夹中的数据(这是虚拟BTW),你需要在blob的名称中包含它。所以你的代码应该是这样的:
字符串
sg24os4d2#
我甚至没有得到一个错误代码,它只是运行,从来没有停止,我最终中断内核后,几分钟
我同意Gaurav Mantri的评论,问题可能是使用了不正确的存储帐户或容器名称。
我在我的环境中尝试了正确的**
account url
和container name
**,它成功执行。验证码:
字符串
输出:
型
的数据
参考号:
Upload a blob with Python - Azure Storage | Microsoft Learn