azure blob storage cli 列表目录

Bra*_*lor 2 powershell azure azure-storage azure-cli azure-blob-storage

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

谢谢。

Mic*_*ren 9

您可以使用该--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
Run Code Online (Sandbox Code Playgroud)

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

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

[ "dir1/",
  "dir2/",
  "dir3/",
  "dir4/" ]
Run Code Online (Sandbox Code Playgroud)

编辑:

--auth-mode login如果由于身份验证问题而无法获取资源,则可能需要另一个标志

# 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
Run Code Online (Sandbox Code Playgroud)