我正在编写一个使用Azure存储CLI的PowerShell脚本。我正在寻找一种仅列出特定路径下的目录的方法。我可以使用DepartmentBudget.joins(:budget_details)
.select('department_budgets.*, MIN(budget_details.balance)')
.group('department_budgets.id')
.order("MIN(budget_details.balance) ASC")
轻松列出blob,但是希望我可以得到目录而无需对结果进行后处理。鉴于Azure blob存储具有平面文件结构,我不确定这是否可行,但认为有人可能会知道我不知道的内容。
谢谢。
答案 0 :(得分:1)
如上所述,Azure Blob存储是平坦的。对于分层文件系统,请签出Azure文件存储。
查看CLI的快速入门:https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-cli
答案 1 :(得分: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
这会在更深的层次上抑制所有斑点。在这里,您可以仅过滤到“文件夹”,因为文件夹条目具有零元数据,而斑点则具有。文件夹条目也以/
结尾。如果您提供查询选项,az
CLI也可以为您过滤该信息:
az storage blob list -c foo --delimiter '/' --query '[].name | [?ends_with(@, `/`)]
[ "dir1/",
"dir2/",
"dir3/",
"dir4/" ]
答案 2 :(得分:0)
我最终决定这不是真正的选择,因为文件系统是平坦的,并且“路径”只是虚拟的。我决定使用不需要基于这些虚拟目录进行批处理的脚本来朝另一个方向发展。