pricing microsoft azure blobstore azure-storage-blobs

microsoft - ¿Cómo limpiar un contenedor Blob de almacenamiento de Azure?



blob storage vs file storage (9)

Solo quiero limpiar (vaciar, zap, del) un contenedor de Azure Blob. ¿Cómo puedo hacer eso?

Nota: El contenedor es utilizado por los registros de IIS (que ejecutan Webrole) (wad-iis-logfiles).


Para este caso, la mejor opción es identificar la lista de elementos que se encuentra en el contenedor. A continuación, elimine cada elemento del contenedor. Esa es la mejor opción. Si elimina el contenedor, debería tener un error de tiempo de ejecución la próxima vez ...


Puede usar Cloud Combine para eliminar todos los blobs en su contenedor de Azure.


Si está interesado en una forma de CLI, el siguiente fragmento de código lo ayudará:

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

Primero obtiene la lista de manchas en el contenedor y las elimina una por una.


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

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

El beneficio real es que es poco probable que el clúster se desactive, y si tiene una pantalla ejecutándose en él, no perderá su sesión mientras elimine.


Si te refieres a que quieres eliminar un contenedor. Me gustaría sugerirle que visite http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx para ver si la operación Eliminar contenedor (el contenedor y las manchas contenidas en él se eliminan posteriormente durante la recolección de basura ) Podría cumplir el requisito.


Solo hay una forma de eliminar las manchas de forma masiva y es eliminando todo el contenedor. Como ha dicho, hay una demora entre la eliminación del contenedor y cuando puede usar ese nombre nuevamente.

Su única otra opción es eliminar una a la vez. Si puede realizar la eliminación desde el mismo centro de datos donde se almacenan los blobs, será más rápido que ejecutar la eliminación localmente. Probablemente, esto signifique escribir código (o podría RDP en una de sus instancias e instalar Cloud Explorer). Si está escribiendo un 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());



Un liner usando el CLI 2.0 de Azure:

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

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

Puedes ver la ayuda del comando ejecutando:

az storage blob delete-batch -h


Actualización: la forma más sencilla de hacerlo ahora (en 2018) es usar la CLI de Azure. Verifica la respuesta de joanlofe :)

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

  1. Descarga Azure Storage Explorer e instálalo
  2. Inicie sesión con la cuenta de Microsoft correspondiente
  3. Navega hasta el contenedor que quieras vaciar.
  4. Haga clic en el botón Seleccionar todo
  5. Haga clic en el botón Eliminar