it-swarm.com.ru

Как очистить контейнер BLOB-хранилища Azure?

Я просто хочу очистить (dump, zap, del. ) контейнер BLOB-объектов Azure. Как я могу это сделать?

Примечание. Контейнер используется журналами IIS (с веб-ролями) (wad-iis-logfiles).

25
Néstor Sánchez A.

Один вкладыш, использующий 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
10
joanlofe

Существует только один способ массового удаления больших двоичных объектов - удаление всего контейнера. Как вы сказали, существует задержка между удалением контейнера и повторным использованием этого имени контейнера.

Ваш единственный выбор - удалять по одному. Если вы можете выполнить удаление из того же центра обработки данных, где хранятся большие двоичные объекты, это будет быстрее, чем локальное удаление. Это, вероятно, означает написание кода (или вы можете RDP в один из ваших экземпляров и установить облачный проводник). Если вы пишете код, вы можете ускорить весь процесс, удалив элементы параллельно. Нечто подобное будет работать:

Parallel.ForEach(myCloudBlobClient.GetContainerReference(myContainerName).ListBlobs(), x => ((CloudBlob) x).Delete());
23
knightpfhor

Update: Более простой способ сделать это сейчас (в 2018 году) - использовать интерфейс командной строки Azure. Проверить ответ Жоанлофе :)


Самый простой способ сделать это в 2016 году - использовать Microsoft Azure Storage Explorer IMO.

  1. Загрузите Azure Storage Explorer и установите его
  2. Войдите, используя соответствующую учетную запись Microsoft
  3. Перейдите к контейнеру, который вы хотите очистить
  4. Нажмите на кнопку Выбрать все
  5. Нажмите на кнопку Удалить

 Screenshot

13
gldraphael

Попробуйте использовать продукт Cloudberry для Windows Azure

это ссылка: http://www.cloudberrylab.com/free-Microsoft-Azure-Explorer.aspx

вы можете искать в BLOB для конкретного расширения. выберите несколько BLOB-объектов и удалите их

6
Ram

Если вы хотите удалить контейнер. Я хотел бы предложить вам проверить http://msdn.Microsoft.com/en-us/library/windowsazure/dd179408.aspx , чтобы увидеть, если операция удаления контейнера (контейнер и все содержащиеся в нем BLOB-объекты позже удалены во время сбора мусора) может выполнить требование. 

5
Ming Xu - MSFT

Если вас интересует способ 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

Сначала он выбирает список больших двоичных объектов в контейнере и удаляет их один за другим.

3
Spaniard89

Если вы используете кластер spark (HDInsight), который имеет доступ к этой учетной записи хранения, то вы можете использовать команды HDFS в командной строке;

hdfs dfs -rm -r wasbs://[email protected]_name.blob.core.windows.net/path_goes_here

Реальное преимущество заключается в том, что кластер вряд ли выйдет из строя, и если на нем запущен экран, вы не потеряете сеанс, пока удалите его.

3
Glen

Вы можете использовать Cloud Combine , чтобы удалить все BLOB-объекты в вашем контейнере Azure.

2
ezolotko

Для этого случая лучшим вариантом будет определить список предметов, найденных в контейнере. затем удалите каждый элемент из контейнера. Это лучший вариант. Если вы удалите контейнер, вы должны иметь ошибку во время выполнения в следующий раз ...

1
Hope