使用 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
而且你不应该得到你得到的错误。
我想将几个文件上传到容器中。我已经尝试了提到的方法
这是我拥有的:
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
而且你不应该得到你得到的错误。