web-dev-qa-db-fra.com

Comment nettoyer un conteneur Blob de stockage Azure?

Je veux juste nettoyer (dump, zap, del. ) un conteneur Azure Blob. Comment puis je faire ça?

Remarque: le conteneur est utilisé par les journaux IIS (exécutant Webrole) (wad-iis-logfiles).

25

Un liner utilisant Azure CLI 2.0:

az storage blob delete-batch --account-name <storage_account_name> --source <container_name>

Remplacez <storage_account_name> et <container_name> par les valeurs appropriées dans votre cas.

Vous pouvez voir l'aide de la commande en lançant:

az storage blob delete-batch -h
10
joanlofe

Il n’existe qu’un moyen de supprimer en bloc les blobs, à savoir la suppression de tout le conteneur. Comme vous l'avez dit, il y a un délai entre la suppression du conteneur et le moment où vous pouvez utiliser ce nom de conteneur à nouveau.

Votre seul autre choix est de supprimer celui-ci à la fois. Si vous pouvez effectuer la suppression à partir du même centre de données où les blobs sont stockés, cela sera plus rapide que d'exécuter la suppression localement. Cela signifie probablement que vous écrivez du code (ou vous pouvez utiliser RDP dans l’une de vos instances et installer Cloud Explorer). Si vous écrivez du code, vous pouvez accélérer le processus en supprimant les éléments en parallèle. Quelque chose de semblable à ceci fonctionnerait:

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

Mise à jour: Le moyen le plus simple de le faire maintenant (en 2018) consiste à utiliser l'interface de ligne de commande Azure. Vérifiez la réponse de joanlofe :)


Le moyen le plus simple de le faire en 2016 consiste à utiliser Microsoft Azure Storage Explorer IMO.

  1. Téléchargez Azure Storage Explorer et installez-le.
  2. Connectez-vous avec le compte Microsoft approprié.
  3. Accédez au conteneur que vous souhaitez vider
  4. Cliquez sur le bouton Tout sélectionner
  5. Cliquez sur le bouton Supprimer

 Screenshot

13
gldraphael

Essayez d’utiliser le produit cloudberry pour Windows Azure.

c'est le lien: http://www.cloudberrylab.com/free-Microsoft-Azure-Explorer.aspx

vous pouvez rechercher dans le blob une extension spécifique. sélectionnez plusieurs blobs et supprimez-les

6
Ram

Si vous voulez dire que vous voulez supprimer un conteneur. Je voudrais vous suggérer de vérifier http://msdn.Microsoft.com/en-us/library/windowsazure/dd179408.aspx pour voir si l'opération Supprimer le conteneur (le conteneur et tous les blobs qu'il contient sont postérieurs supprimé lors du ramassage des ordures) pourrait répondre à l'exigence. 

5
Ming Xu - MSFT

Si vous êtes intéressé par une approche en ligne de commande, le code suivant vous aidera:

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

Il récupère d'abord la liste des blobs dans le conteneur et les supprime un à un.

3
Spaniard89

Si vous utilisez un cluster spark (HDInsight) ayant accès à ce compte de stockage, vous pouvez utiliser les commandes HDFS sur la ligne de commande.

hdfs dfs -rm -r wasbs://container_name@account_name.blob.core.windows.net/path_goes_here

Le véritable avantage est qu'il est peu probable que le cluster tombe en panne et que, si un écran est en cours d'exécution sur celui-ci, vous ne perdrez pas votre session pendant la suppression.

3
Glen

Vous pouvez utiliser Cloud Combine pour supprimer tous les blobs de votre conteneur Azure.

2
ezolotko

Pour ce cas, la meilleure option consiste à identifier la liste des éléments présents dans le conteneur. puis supprimez chaque élément du conteneur. C'est la meilleure option. Si vous supprimez le conteneur, vous devriez avoir une erreur d'exécution la prochaine fois ...

1
Hope