Azure BlobServiceClient 错误 InvalidResourceName

Azure BlobServiceClient Error InvalidResourceName

将文件上传到 Azure Blob 存储容器时遇到问题,使用 azure.storage.blob for python 2.7。 (我知道我应该使用更新的 python,但它是大型 ROS 应用程序的一部分,因此不仅仅是升级它。)

from azure.storage.blob import BlobServiceClient
...
container_name = "operationinput"
self.back_up_root = "~/backup/sql/lp/"
self.back_up_root = os.path.expanduser(self.back_up_root)
file = 'test.sql'

try:
    client = BlobServiceClient.from_connection_string(conn_str=connection_string)
    blob = client.get_blob_client(container='container_name', blob='datafile')
except Exception as err:
    print(str(err))

with open(self.back_up_root + file, "rb") as data:
    blob.upload_blob(data)

我收到以下错误:

azure.core.exceptions.HttpResponseError: The specifed resource name contains invalid characters.
RequestId:3fcb6c26-101e-007e-596d-1c7d61000000
Time:2022-02-07T21:58:17.1308670Z
ErrorCode:InvalidResourceName

我发现的所有 post 都是指使用大写字母左右的人,但我有: 操作输入 数据文件

一切都应该在规格范围内。

有什么想法吗?

我们尝试使用以下示例代码使用 SAS 令牌将文件上传到 Azure blob 存储(容器),并且能够成功实现。

代码示例:-

from azure.storage.blob import BlobClient

upload_file_path="C:\Users\Desktop\filename"
sas_url="https://xxx.blob.core.windows.nethttps://cloudsh3D?sastoken"

client = BlobClient.from_blob_url(sas_url)

with open(upload_file_path,'rb') as data:
    client.upload_blob(data)

print("**file uploaded**")

为了生成 SAS urlconnection string 我们选择如下:-

有关详细信息,请参阅此 Microsoft 文档Allow or disallow public read access for a storage account