我需要将带有破折号“ Depot – Week.xlsx”的文件复制到其他Blob存储位置(容器)。
block_blob_service
是BlockBlobService
类(azure.storage.blob.blockblobservice
)的对象
下面的代码段:
block_blob_service.copy_blob(archive_container, "pleasegodpleaseplease.xlsx", "https://dapblobstorage.blob.core.windows.net/daps3blob/kuldeep/Depot – Week.xlsx")
我遇到以下错误-
Client-Request-ID = 9e183a7e-a24d-11e9-9423-f48e389d3b95重试策略不允许重试:,HTTP状态码=未知,异常=拉丁-1。
归档文件失败:latin-1
答案 0 :(得分:1)
仅作为评论和我的其他内容的摘要。
有一个官方文档Naming and Referencing Containers, Blobs, and Metadata
介绍了容器或Blob名称中不能使用的字符。要解决此问题,常见的解决方案是使用UTF-8 / URL编码器对名称或url进行编码。
在Python中,代码如下所示,并解决了一些:
和/
等特殊字符的问题,无需使用功能urllib.parse.quote
使用参数{{1 }}。
safe
注意:破折号(-)可以用作容器和blob的名称,
每个破折号(-)字符必须紧随其后 字母或数字;容器中不允许连续的破折号 名称。
,但不能在容器名称中使用空格字符,而必须在blob名称及其网址中进行编码。