Каталоги списка хранения для 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

Я решил, что на самом деле это не вариант, так как файловая система плоская, а "пути" просто виртуальные. Я решил пойти другим путем с моим сценарием, который не требовал пакетирования на основе этих виртуальных каталогов.

Другие вопросы по тегам