【问题标题】:azure blob storage cli list directories天蓝色 blob 存储 cli 列出目录
【发布时间】:2019-02-24 03:13:26
【问题描述】:

我正在编写一个使用 Azure 存储 CLI 的 PowerShell 脚本。我正在寻找一种仅列出特定路径下的目录的方法。我可以使用az storage blob list 轻松列出 blob,但我希望我可以在不对结果进行后处理的情况下获取目录。鉴于 Azure blob 存储具有平面文件结构,我不确定这是否可行,但我想有人可能知道我不知道的事情。

谢谢。

【问题讨论】:

  • 你的意思是你正在查看同一个容器内的特定路径?
  • blob 容器内没有目录,路径是虚拟的

标签: azure powershell azure-storage azure-blob-storage azure-cli


【解决方案1】:

您可以使用--delimiter 选项更接近您想要的——顶级文件夹(和 blob),但不是嵌套 blob:

# suppress nested blobs
$ az storage blob list -c foo --delimiter '/' --output table 

Name       Blob Type    Content Type             
---------  -----------  ------------------------- 
dir1/
dir2/
dir3/
dir4/
file.txt   BlockBlob    text/plain; charset=utf-8

这会抑制更深层次的所有斑点。从那里,您可以过滤到仅“文件夹”,因为文件夹条目具有 元数据,而 blob 则具有。文件夹条目也以/ 结尾。如果您提供查询选项,az CLI 也可以为您过滤:

az storage blob list -c foo --delimiter '/' --query '[].name | [?ends_with(@, `/`)]

[ "dir1/",
  "dir2/",
  "dir3/",
  "dir4/" ]

【讨论】:

    【解决方案2】:

    如前所述,Azure Blob 存储是扁平的。对于分层文件系统,请查看 Azure 文件存储。

    查看 CLI 的快速入门:https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-cli

    【讨论】:

      【解决方案3】:

      我最终决定这不是一个真正的选择,因为文件系统是平面的,“路径”只是虚拟的。我决定使用不需要基于这些虚拟目录进行批处理的脚本采用不同的方向。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-08
        • 2015-09-09
        • 2015-11-06
        • 2019-08-11
        • 2015-12-04
        • 2022-08-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多