Azure Python sdk - walk_blobs返回容器编码

thigvfpy  于 2023-10-22  发布在  Python
关注(0)|答案(1)|浏览(101)

我正在尝试运行一个类似于这样的代码:

for blob in container_client.walk_blobs(delimiter='/'):
    print(blob)

一个名为“$mycontainer”的容器。请求成功,我得到了信息。然而,对于 blob 的属性 container,返回的字符串是“%24mycontainer”,而不是“$mycontainer”。好像被某种方式编码了。有没有一种方法可以让这个属性返回正确的容器名,而不需要对特殊字符进行编码?

pvabu6sv

pvabu6sv1#

  • blob* 的属性 container,返回的字符串是“%24mycontainer”,而不是“$mycontainer”。

我同意Anand的评论**%24在URL编码中相当于字符$
如果需要获取
$mycontainer**未编码的容器名,可以使用Python中urllib.parse模块中的unquote函数。

验证码:

from azure.storage.blob import BlobServiceClient
from urllib.parse import unquote

connection_string = "your-Connection-string"
container_name = "$sample"

blob_service_client = BlobServiceClient.from_connection_string(connection_string)
container_client = blob_service_client.get_container_client(container_name)

for blob in container_client.walk_blobs(delimiter='/'):
    container_name = unquote(blob.container)
    print(container_name)

输出:将容器名打印为$sample,而不是**%24sample**。

参考:

urllib.parse -将URL解析为组件- Python 3.11.6文档

相关问题