Eliminar y restaurar un contenedor de blobs con JavaScript o TypeScript
En este artículo se muestra cómo eliminar contenedores con la biblioteca cliente de Azure Storage para JavaScript. Si ha habilitado la eliminación temporal de contenedores, puede restaurar los contenedores eliminados.
Requisitos previos
- Los ejemplos de este artículo asumen que ya tiene un proyecto configurado para trabajar con la librería cliente Azure Blob Storage para JavaScript. Para obtener más información sobre la configuración del proyecto, incluida la instalación de paquetes, la importación de módulos y la creación de un objeto cliente autorizado para trabajar con recursos de datos, consulte Introducción a Azure Blob Storage y JavaScript.
- 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, use el método siguiente a partir de la clase BlobServiceClient:
También puede eliminar un contenedor mediante el método siguiente a partir de la clase ContainerClient:
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 produce 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 produce un error con el código de error HTTP 404 (Not Found)
.
El siguiente ejemplo utiliz un objeto BlobServiceClient
para eliminar el contenedor especificado.
async function deleteContainer(blobServiceClient, containerName) {
return await blobServiceClient.deleteContainer(containerName);
}
En el ejemplo siguiente se muestra cómo eliminar todos los contenedores que comienzan con un prefijo especificado.
async function deleteContainersWithPrefix(blobServiceClient, prefix) {
const containerOptions = {
includeDeleted: false,
includeMetadata: false,
includeSystem: true,
prefix
}
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
try{
const containerClient = blobServiceClient.getContainerClient(containerItem.name);
await containerClient.delete();
console.log(`Deleted ${containerItem.name} container - success`);
}catch(ex){
console.log(`Deleted ${containerItem.name} container - failed - ${ex.message}`);
}
}
}
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 después de eliminarse, dentro de un período de retención especificado. Se puede restaurar un contenedor eliminado temporalmente mediante un objeto BlobServiceClient:
En el ejemplo siguiente se busca un contenedor eliminado, se obtiene el identificador de versión de ese contenedor eliminado y, a continuación, se pasa ese identificador al método undeleteContainer
para restaurar el contenedor.
async function undeleteContainer(blobServiceClient, containerName) {
// Version to restore
let containerVersion;
const containerOptions = {
includeDeleted: true,
prefix: containerName
}
// Find the deleted container and restore it
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
if (containerItem.name === containerName) {
containerVersion = containerItem.version;
}
}
const containerClient = await blobServiceClient.undeleteContainer(
containerName,
containerVersion,
);
}
Recursos
Para más información sobre cómo eliminar un contenedor con la biblioteca cliente de Azure Blob Storage para JavaScript, consulte los recursos siguientes.
Ejemplos de código
- Ver ejemplos de código de JavaScript y TypeScript de este artículo (GitHub)
Operaciones de API REST
El SDK de Azure para JavaScript 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 JavaScript. Los métodos de la biblioteca cliente para eliminar o restaurar un contenedor usan esta operación de API REST:
- Delete Container (API REST)
- Restaurar contenedor (API de REST)
Recursos de la biblioteca cliente
- Documentación de referencia de la biblioteca cliente
- Código fuente de la biblioteca del cliente
- Paquete (npm)
Consulte también
- Eliminación temporal de contenedores
- Habilitación y administración de la eliminación temporal para contenedores
Contenido relacionado
- Este artículo forma parte de la guía para desarrolladores de Blob Storage para JavaScript/Typescript. Para obtener más información, consulte la lista completa de artículos de la guía para desarrolladores en Compilación de la aplicación JavaScript/Typescript.