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
Blobを一括削除する方法は1つだけです。それは、コンテナー全体を削除することです。あなたが言ったように、コンテナーを削除してからそのコンテナー名を再び使用できるようになるまでには遅延があります。
他に選択できるのは、一度に1つずつ削除することです。 BLOBが保存されているのと同じデータセンターから削除できる場合は、ローカルで削除を実行するよりも高速です。これはおそらくコードを書くことを意味します(または、インスタンスの1つにRDPを実行してクラウドエクスプローラーをインストールすることもできます)。コードを記述している場合は、アイテムを並行して削除することで、プロセス全体を高速化できます。これに似た何かがうまくいくでしょう:
Parallel.ForEach(myCloudBlobClient.GetContainerReference(myContainerName).ListBlobs(), x => ((CloudBlob) x).Delete());
更新:今すぐ(2018年に)実行する簡単な方法は、Azure CLIを使用することです。チェック ジョアンロフェの答え :)
2016年にこれを行う最も簡単な方法は、Microsoft Azure Storage Explorer IMOを使用することです。
Windows AzureにCloudberry製品を使用してみてください
これはリンクです: http://www.cloudberrylab.com/free-Microsoft-Azure-Explorer.aspx
blobで特定の拡張子を検索できます。複数のブロブを選択して削除する
コンテナを削除したい場合。 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
まず、コンテナー内のblobのリストをフェッチし、それらを1つずつ削除します。
そのストレージアカウントにアクセスできるspark(HDInsight)クラスターを使用している場合は、コマンドラインでHDFSコマンドを使用できます。
hdfs dfs -rm -r wasbs://container_name@account_name.blob.core.windows.net/path_goes_here
本当の利点は、クラスターがダウンする可能性が低く、画面で実行している場合でも、削除している間にセッションが失われないことです。
Cloud Combine を使用して、Azureコンテナー内のすべてのblobを削除できます。
この場合、コンテナで見つかったアイテムのリストを特定することをお勧めします。次に、コンテナから各アイテムを削除します。それが最良の選択です。コンテナーを削除すると、次回にランタイムエラーが発生するはずです...