Azure Python SDK:walk_blobs返回容器名称被编码,如何获取原名称?
解决Blob对象Container属性URL编码的问题
有几个可行的办法处理这个问题:
手动解码编码后的容器名:
利用Python标准库的urllib.parse.unquote方法对返回的编码值进行解码,示例代码:from urllib.parse import unquote for blob in container_client.walk_blobs(delimiter='/'): original_container_name = unquote(blob.container) print(original_container_name) # 输出 $mycontainer直接使用ContainerClient的原始容器名:
既然你已经有了container_client实例,它本身就存储了未编码的容器名称,直接调用container_client.container_name就能拿到原名称$mycontainer,不需要从blob对象中获取。升级Azure Blob Storage SDK:
这个编码问题可能是旧版本SDK的bug,尝试升级到最新版的azure-storage-blob包,命令如下:pip install --upgrade azure-storage-blob新版本可能已经修复了这个属性自动编码的问题,直接获取
blob.container就能得到原始名称。
内容的提问来源于stack exchange,提问作者Comp_sc_student
相关产品推荐
相关产品推荐

