python - 使用 Python 将文件上传到 Azure Blob 存储中的容器

标签 python azure-blob-storage

我想将几个文件上传到容器中。我已经尝试过提到的方法here但没有成功。

这是我所拥有的:

SAS URL:https://xxxx.blob.core.windows.net?sp=acw&st=2022-05-31T17:54:22Z&se=2022-06-05T10:59:59Z&sv=2020-08 -04&sr=c&sig=H0g%2BY%2FOnNIaYNVTsX%2FP42buWaowxIlxQDJ0xqH0gvqQ%3D

容器名称:XYZ

我想将文件上传到容器根目录,不带任何子文件夹。

编辑: 到目前为止我的代码:

sas = 'https://xxxx.blob.core.windows.net?sp=acw&st=2022-05-31T17:54:22Z&se=2022-06-05T10:59:59Z&sv=2020-08-04&sr=c&sig=H0g%2BY%2FOnNIaYNVTsX%2FP42buWaowxIlxQDJ0xqH0gvqQ%3D'

container = 'container_name'
sasUrlParts = urlparse(sas)
accountEndpoint = sasUrlParts.scheme + '://' + sasUrlParts.netloc
sasToken = sasUrlParts.query

blobSasUrl = accountEndpoint + '/' + container + '?' + sasToken

blobClient = BlobClient.from_blob_url(blobSasUrl)

with open('/file_to_be_uploaded.csv', 'rb') as f:
    blobClient.upload_blob(f)

这会在 blobClient = BlobClient.from_blob_url(blobSasUrl) 行中产生以下错误:

ValueError: Invalid URL. Provide a blob_url with a valid blob and container name

最佳答案

我相信您收到错误的原因是您的 blobSasUrl 不包含 blob 的名称。

请尝试更改以下代码行:

blobSasUrl = accountEndpoint + '/' + container + '?' + sasToken

blobName = 'file_to_be_uploaded.csv'
blobSasUrl = accountEndpoint + '/' + container + '/' + blobName + '?' + sasToken

并且您不应该收到您所收到的错误。

关于python - 使用 Python 将文件上传到 Azure Blob 存储中的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72499058/

相关文章:

python - 使用 google DFP API python 客户端时出现奇怪的问题

python - Python 中的快速探路者关联网络算法 (PFNET)

来自最近边缘服务器的 Azure 存储和缓存

Azure 架构可将大量 XML 文件可靠地导入到 Azure SQL 表

azure - Azure 表中的排名

python - 第一次调用后销毁对象方法

python - 在输入训练集和验证集后如何使用交叉验证?

python GTK : make about dialog without logo

Azure Blob 存储 - 删除文件夹的权限

azure - Web 角色本地存储 URI