【问题标题】:azure blob storage cli list directories天蓝色 blob 存储 cli 列出目录
【发布时间】:2019-02-24 03:13:26
【问题描述】:
我正在编写一个使用 Azure 存储 CLI 的 PowerShell 脚本。我正在寻找一种仅列出特定路径下的目录的方法。我可以使用az storage blob list 轻松列出 blob,但我希望我可以在不对结果进行后处理的情况下获取目录。鉴于 Azure 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/" ]
【解决方案3】:
我最终决定这不是一个真正的选择,因为文件系统是平面的,“路径”只是虚拟的。我决定使用不需要基于这些虚拟目录进行批处理的脚本采用不同的方向。