gpt4 book ai didi

python - 如何使用 Python 列出 Azure 云存储中特定子目录内的所有 blob?

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:13 24 4
gpt4 key购买 nike

我完成了 Azure 文档 https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python 中的示例代码

from azure.storage.blob import BlockBlobService
account_name = "x"
account_key = "x"
top_level_container_name = "top_container"

blob_service = BlockBlobService(account_name, account_key)

print("\nList blobs in the container")
generator = blob_service.list_blobs(top_level_container_name)
for blob in generator:
print("\t Blob name: " + blob.name)

现在我想知道如何让我的容器行走变得更细粒度。我的容器 top_level_container_name 有几个子目录

  • top_level_container_name/dir1
  • top_level_container_name/dir2
  • 以该模式等

我希望能够列出这些目录之一内的所有 blob。例如

  • dir1/a.jpg
  • dir1/b.jpg
  • 等等

如何获得仅包含 dir1 内容的生成器,而不必遍历所有其他目录? (我还会拿一份 list 或字典)

我尝试将/dir1 添加到 top_level_container_name 的名称中,这样它就是 top_level_container_name = "top_container/dir1" 但这不起作用。我收到错误代码 azure.common.AzureHttpError:请求的 URI 不代表服务器上的任何资源。错误代码:InvalidUri

文档似乎甚至没有关于 BlockBlobService.list_blobs() https://learn.microsoft.com/en-us/python/api/azure.storage.blob.blockblobservice.blockblobservice?view=azure-python 的任何信息

更新:list_blobs() 来自https://github.com/Azure/azure-storage-python/blob/ff51954d1b9d11cd7ecd19143c1c0652ef1239cb/azure-storage-blob/azure/storage/blob/baseblobservice.py#L1202

最佳答案

请尝试以下操作:

generator = blob_service.list_blobs(top_level_container_name, prefix="dir1/")

这应该列出 dir1 虚拟目录中的 blob 和文件夹。

如果您想列出 dir1 虚拟目录中的所有 blob,请尝试以下操作:

generator = blob_service.list_blobs(top_level_container_name, prefix="dir1/", delimiter="")

有关更多信息,请参阅此 link .

关于python - 如何使用 Python 列出 Azure 云存储中特定子目录内的所有 blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51145124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com