Eliminación y restauración de un contenedor de blobs con Java

En este artículo se muestra cómo eliminar contenedores con la biblioteca cliente de Azure Storage para Java. Si ha habilitado la eliminación temporal de contenedores, puede restaurar los contenedores eliminados.

Requisitos previos

  • En este artículo se supone que ya tiene un proyecto configurado para trabajar con la biblioteca cliente de Azure Blob Storage para Java. Para obtener información sobre cómo configurar el proyecto, incluida la instalación de paquetes, la adición de directivas de import y la autorización de un objeto de cliente, consulte Introducción a Azure Storage y Java.
  • El mecanismo de autorización debe tener permisos para eliminar un contenedor de blobs o para restaurar un contenedor eliminado temporalmente. Para obtener más información, consulte la guía de autorización para las siguientes operaciones de la API de REST:

Eliminación de un contenedor

Para eliminar un contenedor en Java, use uno de los métodos siguientes de la clase BlobServiceClient:

También puede crear un contenedor mediante uno de los métodos siguientes de la clase BlobContainerClient:

Después de eliminar un contenedor, no se puede crear otro con el mismo nombre durante al menos 30 segundos. Un intento de crear un contenedor con el mismo nombre producirá un error con el código de error de HTTP 409 (Conflict). Cualquier otra operación en el contenedor o en los blobs que contiene producirá un error con el código de error HTTP 404 (Not Found).

El siguiente ejemplo utiliz un objeto BlobServiceClient para eliminar el contenedor especificado.

public void deleteContainer(BlobServiceClient blobServiceClient, String containerName) {
    // Delete the container using the service client
    blobServiceClient.deleteBlobContainer(containerName);
}

En el ejemplo siguiente se muestra cómo eliminar todos los contenedores que comienzan con un prefijo especificado.

public void deleteContainersWithPrefix(BlobServiceClient blobServiceClient) {
    ListBlobContainersOptions options = new ListBlobContainersOptions()
            .setPrefix("container-");

    // Delete the container with the specified prefix using the service client
    for (BlobContainerItem containerItem : blobServiceClient.listBlobContainers(options, null)) {
        BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerItem.getName());
        containerClient.delete();
    }
}

Restauración de un contenedor eliminado

Cuando la eliminación temporal de contenedores está habilitada para una cuenta de almacenamiento, un contenedor y su contenido se pueden recuperar dentro de un período de retención especificado. Para obtener información sobre cómo habilitar la eliminación temporal de contenedores, consulte Habilitación y administración de la eliminación temporal de contenedores. Puede restaurar un contenedor eliminado temporalmente si llama a cualquiera de los métodos siguientes de la clase BlobServiceClient:

En el ejemplo siguiente se busca un contenedor eliminado, se obtiene la versión de ese contenedor eliminado y, a continuación, se pasa la versión al método undeleteBlobContainer para restaurar el contenedor.

public void restoreContainer(BlobServiceClient blobServiceClient) {
    ListBlobContainersOptions options = new ListBlobContainersOptions();
    options.getDetails().setRetrieveDeleted(true);

    // Delete the container with the specified prefix using the service client
    for (BlobContainerItem deletedContainerItem : blobServiceClient.listBlobContainers(options, null)) {
        BlobContainerClient containerClient = blobServiceClient
                .undeleteBlobContainer(deletedContainerItem.getName(), deletedContainerItem.getVersion());
    }
}

Recursos

Para más información sobre cómo eliminar un contenedor con la biblioteca cliente de Azure Blob Storage para Java, consulte los recursos siguientes.

Operaciones de API REST

El SDK de Azure para Java contiene bibliotecas que se crean a partir de la API REST de Azure, lo que le permite interactuar con las operaciones de API REST a través de paradigmas conocidos de Java. Los métodos de la biblioteca cliente para eliminar o restaurar un contenedor usan esta operación de API REST:

Ejemplos de código

Recursos de la biblioteca cliente

Consulte también