Een blobcontainer verwijderen en herstellen met JavaScript

In dit artikel wordt beschreven hoe u containers verwijdert met de Azure Storage-clientbibliotheek voor JavaScript. Als u voorlopig verwijderen van containers hebt ingeschakeld, kunt u verwijderde containers herstellen.

Vereisten

  • In de voorbeelden in dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor JavaScript. Zie Aan de slag met Azure Blob Storage en JavaScript voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het importeren van modules en het maken van een geautoriseerd clientobject voor gebruik met gegevensbronnen.
  • Het autorisatiemechanisme moet machtigingen hebben om een blobcontainer te verwijderen of om een voorlopig verwijderde container te herstellen. Zie de autorisatierichtlijnen voor de volgende REST API-bewerkingen voor meer informatie:

Een container verwijderen

Als u een container in JavaScript wilt verwijderen, maakt u een BlobServiceClient of ContainerClient en gebruikt u een van de volgende methoden:

Nadat u een container hebt verwijderd, kunt u gedurende ten minste 30 seconden geen container met dezelfde naam maken. Als u probeert een container met dezelfde naam te maken, mislukt de HTTP-foutcode 409 (Conflict). Alle andere bewerkingen in de container of de blobs die deze bevat, mislukken met HTTP-foutcode 404 (niet gevonden).

Container verwijderen met BlobServiceClient

In het volgende voorbeeld wordt de opgegeven container verwijderd. Gebruik de BlobServiceClient om een container te verwijderen:

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

Container verwijderen met ContainerClient

In het volgende voorbeeld ziet u hoe u alle containers verwijdert waarvan de naam begint met een opgegeven voorvoegsel met behulp van een 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`);
    }
  }
}

Een verwijderde container herstellen

Wanneer voorlopig verwijderen van containers is ingeschakeld voor een opslagaccount, kunnen een container en de inhoud ervan worden hersteld nadat deze is verwijderd, binnen een retentieperiode die u opgeeft. U kunt een voorlopig verwijderde container herstellen met behulp van een BlobServiceClient-object :

In het volgende voorbeeld wordt een verwijderde container gevonden, de versie-id van die verwijderde container ophaalt en die id vervolgens doorgegeven aan de methode undeleteContainer om de container te herstellen.

// 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
  // ...
}

Resources

Zie de volgende resources voor meer informatie over het verwijderen van een container met behulp van de Azure Blob Storage-clientbibliotheek voor JavaScript.

REST API-bewerkingen

De Azure SDK voor JavaScript bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende JavaScript-paradigma's. De clientbibliotheekmethoden voor het verwijderen of herstellen van een container maken gebruik van de volgende REST API-bewerkingen:

Codevoorbeelden

Clientbibliotheekbronnen

Zie ook