Каталоги списка хранения для Azure BLOB
Я пишу сценарий PowerShell, использующий интерфейс командной строки Azure Storage. Я ищу способ перечислить только каталоги под определенным путем. Я могу легко перечислить капли, используя az storage blob list
но я надеюсь, что смогу получить каталоги без пост-обработки результата. Учитывая, что хранилище BLOB-объектов Azure имеет плоскую файловую структуру, я не совсем уверен, что это возможно, но думал, что кто-то может знать то, что я не знаю.
Благодарю.
2 ответа
Вы можете использовать --delimiter
возможность приблизиться к тому, что вы хотите - папки верхнего уровня (и капли), но не вложенные капли:
# 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/" ]
Как уже упоминалось, хранилище BLOB-объектов Azure является плоским. Для иерархической файловой системы проверьте хранилище файлов Azure.
Проверьте быстрый старт для CLI: https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-cli
Я решил, что на самом деле это не вариант, так как файловая система плоская, а "пути" просто виртуальные. Я решил пойти другим путем с моим сценарием, который не требовал пакетирования на основе этих виртуальных каталогов.