Я просто хочу очистить (дамп, zap, del.) контейнер Azure Blob. Как я могу это сделать?
Примечание. Контейнер используется журналами IIS (работает Webrole) (wad-iis-logfiles).
Я просто хочу очистить (дамп, zap, del.) контейнер Azure Blob. Как я могу это сделать?
Примечание. Контейнер используется журналами IIS (работает Webrole) (wad-iis-logfiles).
Один вкладыш, использующий Azure CLI 2.0:
az storage blob delete-batch --account-name <storage_account_name> --source <container_name>
Замените <storage_account_name>
и <container_name>
на соответствующие значения в вашем случае.
Вы можете увидеть помощь команды, выполнив:
az storage blob delete-batch -h
Есть только один способ для массового удаления блобов, а это - удаление всего контейнера. Как вы сказали, существует задержка между удалением контейнера и повторным использованием этого имени контейнера.
Ваш единственный выбор - удалить один за раз. Если вы можете сделать удаление из того же центра обработки данных, где хранятся капли, это будет быстрее, чем запуск локального удаления. Это, вероятно, означает написание кода (или вы могли бы RDP в один из ваших экземпляров и установить облачный проводник). Если вы пишете код, вы можете ускорить общий процесс, удалив элементы параллельно. Нечто похожее на это будет работать:
Parallel.ForEach(myCloudBlobClient.GetContainerReference(myContainerName).ListBlobs(), x => ((CloudBlob) x).Delete());
Обновление. Более простой способ сделать это сейчас (в 2018 году) - использовать интерфейс командной строки Azure. Проверьте Джоанлофе ответ :)
Самый простой способ сделать это в 2016 году - использовать Microsoft Azure Storage Explorer IMO.
Попробуйте использовать продукт cloudberry для windows azure
это ссылка: http://www.cloudberrylab.com/free-microsoft-azure-explorer.aspx
вы можете искать в блобе для конкретного расширения. выберите несколько блоков и удалите их
Если вы хотите удалить контейнер. Я хотел бы предложить вам проверить http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx, чтобы увидеть, удалена ли операция контейнера (контейнер и любые складки, содержащиеся в нем, позже удаляются во время мусора сбор) может выполнить требование.
Если вас интересует способ CLI, то следующий фрагмент кода поможет вам:
for i in `az storage blob list -c "Container-name" --account-name "Storage-account-name" --account-key "Storage-account-access-key" --output table | awk {'print $1'} | sed '1,2d' | sed '/^$/d'`; do az storage blob delete --name $i -c "Container-name" --account-name "Storage-account-name" --account-key "Storage-account-access-key" --output table; done
Сначала он извлекает список блоков в контейнере и удаляет их один за другим.
Если вы используете кластер искры (HDInsight), который имеет доступ к этой учетной записи, то вы можете использовать команды HDFS в командной строке;
hdfs dfs -rm -r wasbs://[email protected]_name.blob.core.windows.net/path_goes_here
Реальная выгода заключается в том, что кластер вряд ли снизится, и если у вас на нем работает экран, вы не потеряете сеанс, пока вы удалите его.
Вы можете использовать Cloud Combine, чтобы удалить все капли в вашем контейнере Azure.
В этом случае лучшим вариантом является идентификация списка элементов, найденных в контейнере. затем удалите каждый элемент из контейнера. Это лучший вариант. Если вы удалите контейнер, у вас должна быть ошибка времени выполнения в следующий раз...