2012-05-03 39 views

Respuesta

0

A un trazador de líneas usando el Azure CLI 2.0:

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

Substitute <storage_account_name> y <container_name> por los valores apropiados en su caso.

Se puede ver la ayuda de la commnand ejecutando:

az storage blob delete-batch -h 
4

Si quiere decir que quiere eliminar un contenedor. Me gustaría sugerirle que compruebe http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx para ver si el funcionamiento Eliminar contenedor (el contenedor y cualquier blobs contenido en él se eliminan posteriormente durante la recolección de basura) podría cumplir el requisito.

+0

El problema con este enfoque es que Webrole se bloqueará si el contenedor no se encuentra antes de crear uno nuevo con el mismo nombre. –

+0

En ese caso, su única otra opción es enumerar todos los elementos en el contenedor y eliminarlos de uno en uno. – knightpfhor

+0

@knightpfhor eso es lo que estoy haciendo con Azure Storage Explorer (de Neudesic). Pero, a pesar de que puedo seleccionar un grupo para eliminar juntos, es muy lento. –

20

Solo hay una forma de eliminar blobs a granel y eliminar todo el contenedor. Como ha dicho, hay una demora entre la eliminación del contenedor y cuándo puede usar ese nombre de contenedor nuevamente.

Su única otra opción es eliminar la de a la vez. Si puede eliminar desde el mismo centro de datos donde se almacenan los blobs, será más rápido que ejecutar el borrado localmente. Esto probablemente signifique escribir código (o podría usar RDP en una de sus instancias e instalar Cloud Explorer). Si está escribiendo código, puede acelerar el proceso general eliminando los elementos en paralelo. Algo similar a esto funcionaría:

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

funciona muy bien - ¡gracias! Una corrección sería devolver los archivos como una lista plana en caso de que se hayan utilizado carpetas: 'Parallel.ForEach (blobContainer.ListBlobs (useFlatBlobListing: true), x => ((CloudBlob) x) .Delete());' – Eleasar

+0

Sí, tienes razón, esa sería sin duda una opción más segura. – knightpfhor

1

En este caso, la mejor opción es identificar la lista de elementos encontrados en el contenedor. luego borre cada elemento del contenedor. Esa es la mejor opción. Si elimina el contenedor debe tener un error de tiempo de ejecución en la próxima vez ...

6

Trate de usar productos mora de los pantanos para Windows Azure

Este es el enlace: http://www.cloudberrylab.com/free-microsoft-azure-explorer.aspx

usted puede buscar en la mancha para una extensión específica. seleccione varios blobs y elimínelos

+1

Herramienta gratuita funciona perfectamente para esto - muy útil - gracias –

10

La manera más fácil de hacerlo en 2016 es usar Microsoft Azure Storage Explorer IMO.

  1. Descargar Azure Storage Explorer y instalarlo
  2. sesión con la cuenta de Microsoft apropiado
  3. Examinar para el contenedor que desea vaciar
  4. Haga clic en el botón Seleccionar todo
  5. Haga clic en la Supr botón

Screenshot

+0

El CÓMO es muy importante aquí - tienes que presionar cargar más hasta llegar a la última página de blobs y luego presionar seleccionar todo. Y luego eliminar. –

+1

@RobertoBonini agregó los pasos. De lo que recuerdo no tuve que seguir cargando hasta el final. – gldraphael

+0

Seleccionar todo se puede hacer para "todo en la página" y "todo en caché", no es necesario cargar todas las páginas. Gran herramienta por cierto, gracias por compartir esta información. –

3

Si usted está interesado en un modo CLI, a continuación, el siguiente fragmento de código le ayudará a cabo:

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 

En primer lugar, va a buscar la lista de manchas en el recipiente y los elimina uno a uno.

3

Si está utilizando un clúster de chispa (HDInsight) que tiene acceso a esa cuenta de almacenamiento, puede usar comandos HDFS en la línea de comando;

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

El beneficio real es que el clúster es poco probable que bajar, y si usted tiene la pantalla se ejecutan en él, entonces no perderá su sesión mientras se elimina de distancia.

Cuestiones relacionadas