Azcopy удалить по шаблону папки

У меня есть хранилище BLOB-объектов Azure для хранения файлов для Azure Data Explorer в разделенном формате: /<company_name>/<year>/<month>/<day>, поэтому папок может быть много, например:

/xyz/2020/01/01
/xyz/2020/02/01
/abc/2020/01/01
/def/2020/02/01
/def/2020/02/02
etc.

Мне нужно иметь возможность удалить полный месяц или день для всех компаний. Так, например, если я хочу удалить месяц 2020/02, мне нужно удалить папки:

/xyz/2020/02/01
/def/2020/02/01
/def/2020/02/02

У утилиты Azcopy есть команда удаления с некоторыми дополнительными флагами --include-pattern, --list-of-files и так далее. Можно ли выполнить мою задачу без явного перечисления всех путей? т.е. Я хочу иметь команду типа:

azcopy rm "https://myaccount.blob.core.windows.net/mycontainer/*/2020/02/*?mysas" --recursive=true

Возможно ли это?


person Georgy Nevsky    schedule 19.05.2020    source источник


Ответы (1)


На данный момент он не поддерживает подстановочные знаки (*), вы можете получить его отсюда: Параметры.

--include-path string Включать только эти пути при удалении. Этот параметр не поддерживает подстановочные знаки (*).

Вы можете попробовать команду azure cli пакетное удаление больших двоичных объектов в хранилище az, он поддерживает pattern для рекурсивного удаления больших двоичных объектов.

person George Chen    schedule 19.05.2020
comment
azure cli, вероятно, будет работать, но я не хочу использовать другие инструменты, кроме azcopy. Попытка выполнить эту задачу в 2 шага — сначала перечислить папки, которые необходимо удалить, а затем передать их параметру --list-of-files. Но похоже, что это невозможно и с помощью команды list. - person Georgy Nevsky; 19.05.2020