Eliminare e ripristinare un contenitore BLOB con JavaScript

Questo articolo illustra come eliminare i contenitori con la libreria client di Archiviazione di Azure per JavaScript. Se l'eliminazione temporanea dei contenitori è stata abilitata, è possibile ripristinare i contenitori eliminati.

Prerequisiti

  • Gli esempi in questo articolo presuppongono che sia già stato configurato un progetto per l’uso con la libreria client di Archiviazione BLOB di Azure per JavaScript. Per informazioni sulla configurazione del progetto, incluse l'installazione del pacchetto, l'importazione di moduli e la creazione di un oggetto client autorizzato per l'uso con le risorse dati, consultare Introduzione ad Archiviazione BLOB di Azure e JavaScript.
  • Il meccanismo di autorizzazione deve disporre delle autorizzazioni per eliminare un contenitore BLOB o per ripristinare un contenitore eliminato temporaneamente. Per altre informazioni, vedere le linee guida per l'autorizzazione per le operazioni API REST seguenti:

Eliminare un contenitore

Per eliminare un contenitore in JavaScript, creare un oggetto BlobServiceClient o ContainerClient e quindi usare uno dei metodi seguenti:

Dopo aver eliminato un contenitore, non è possibile creare un contenitore con lo stesso nome per almeno 30 secondi. Il tentativo di creare un contenitore con lo stesso nome avrà esito negativo con codice di errore HTTP 409 (Conflitto). Qualsiasi altra operazione sul contenitore o sui BLOB in esso contenuti avrà esito negativo con codice di errore HTTP 404 (Non trovato).

Eliminare un contenitore con BlobServiceClient

L'esempio seguente elimina il contenitore specificato. Usare l'oggetto BlobServiceClient per eliminare un contenitore:

// delete container immediately on blobServiceClient
async function deleteContainerImmediately(blobServiceClient, containerName) {
  const response = await blobServiceClient.deleteContainer(containerName);

  if (!response.errorCode) {
    console.log(`deleted ${containerItem.name} container`);
  }
}

Eliminare un contenitore con ContainerClient

L'esempio seguente illustra come eliminare tutti i contenitori il cui nome inizia con un prefisso specificato usando un oggetto ContainerClient.

async function deleteContainersWithPrefix(blobServiceClient, blobNamePrefix){

  const containerOptions = {
    includeDeleted: false,
    includeMetadata: false,
    includeSystem: true,
    prefix: blobNamePrefix
  }

  for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {

    const containerClient = blobServiceClient.getContainerClient(containerItem.name);

    const response = await containerClient.delete();

    if(!response.errorCode){
      console.log(`deleted ${containerItem.name} container`);
    }
  }
}

Ripristinare un contenitore eliminato

Quando per un account di archiviazione è abilitata l'eliminazione temporanea dei contenitori, è possibile recuperare un contenitore eliminato e il relativo contenuto entro un periodo di conservazione specificato. È possibile ripristinare un contenitore eliminato temporaneamente usando un oggetto BlobServiceClient:

L'esempio seguente trova un contenitore eliminato, ottiene l'ID versione del contenitore e quindi passa l'ID al metodo undeleteContainer per ripristinare il contenitore.

// Undelete specific container - last version
async function undeleteContainer(blobServiceClient, containerName) {

  // version to undelete
  let containerVersion;

  const containerOptions = {
    includeDeleted: true,
    prefix: containerName
  }

  // container listing returns version (timestamp) in the ContainerItem
  for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {

    // if there are multiple deleted versions of the same container,
    // the versions are in asc time order
    // the last version is the most recent
    if (containerItem.name === containerName) {
      containerVersion = containerItem.version;
    }
  }

  const containerClient = await blobServiceClient.undeleteContainer(
    containerName,
    containerVersion,

    // optional/new container name - if unused, original container name is used
    //newContainerName 
  );

  // undelete was successful
  console.log(`${containerName} is undeleted`);

  // do something with containerClient
  // ...
}

Risorse

Per altre informazioni sull'eliminazione di un contenitore usando la libreria client di Archiviazione BLOB di Azure per JavaScript, vedere le risorse seguenti.

Operazioni dell'API REST

Azure SDK per JavaScript contiene librerie basate sull'API REST di Azure che consentono di interagire con le operazioni dell'API REST tramite paradigmi noti di JavaScript. I metodi della libreria client per eliminare o ripristinare un contenitore usano le operazioni API REST seguenti:

Esempi di codice

Risorse per la libreria client

Vedi anche