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

Upload files to a Container in Azure Blob Storage using Python

我想将几个文件上传到容器中。我已经尝试了提到的方法 但它没有用。

这是我拥有的:

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

而且你不应该得到你得到的错误。