Eliminare e ripristinare un contenitore BLOB con JavaScript o TypeScript

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, usare il metodo seguente dalla classe BlobServiceClient :

È anche possibile eliminare un contenitore usando il metodo seguente dalla classe ContainerClient:

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 ha esito negativo con codice di errore HTTP 409 (Conflict). Qualsiasi altra operazione sul contenitore o sui BLOB in esso contenuti ha esito negativo con codice di errore HTTP 404 (Not Found).

Nell'esempio seguente viene usato un oggetto BlobServiceClient per eliminare il contenitore specificato:

async function deleteContainer(blobServiceClient, containerName) {
  
  return await blobServiceClient.deleteContainer(containerName);
}

Nell'esempio seguente viene illustrato come eliminare tutti i contenitori che iniziano con un prefisso specificato:

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}`);
    }
  }
}

Ripristinare un contenitore eliminato

Quando l'eliminazione temporanea del contenitore è abilitata per un account di archiviazione, un contenitore e il relativo contenuto possono essere recuperati dopo l'eliminazione, 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 eliminato e quindi passa tale ID al undeleteContainer metodo per ripristinare il contenitore.

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,
  );
}

Risorse

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

Esempi di codice

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:

Risorse per la libreria client

Vedi anche

  • Questo articolo fa parte della guida per sviluppatori di Archiviazione BLOB per JavaScript/Typescript. Per altre informazioni, vedere l'elenco completo degli articoli della guida per sviluppatori in Creare l'app JavaScript/Typescript.