#azure #azure-storage #azure-blob-storage #azure-cli
Вопрос:
Я хотел бы перечислить все файлы, хранящиеся на определенном уровне. Это то, что я пытался:
az storage fs file list
--file-system 'cold-backup'
--query "[?contains(properties.blobTier, 'Cold')==`true`].properties.blobTier"
Но это не работает. Я также попробовал использовать только «blobTier». Не повезло.
Это ошибка, которую я получаю:
Недопустимый запрос jmespath, предоставленный для ‘—query’: В функции содержит(), недопустимый тип значения: Нет, ожидаемый один из: [‘массив’, ‘строка’], получено: «null»
Ответ №1:
Команда az storage fs file list
предназначена для файловой системы ADLS Gen2, в выводе нет blobTier
свойства, поэтому вы не могли выполнить запрос с ее помощью, также blobTier
должно быть Cool
вместо Cold
.
Если вы хотите перечислить файлы blobTier
, с помощью которых вы можете использовать фильтр az storage blob list
, он применим к хранилищу больших двоичных объектов, но его также можно использовать для файловой системы ADLS Gen2.
Образец:
az storage blob list --account-name '<storage-account-name>' --account-key 'xxxxxx' --container-name 'cold-backup' --query "[?properties.blobTier=='Cool']"
Если вы хотите вывести blobTier
, используйте --query "[?properties.blobTier=='Cool'].properties.blobTier"
вместо этого в команде.