Löschen und Wiederherstellen eines Blobcontainers mit JavaScript

In diesem Artikel wird beschrieben, wie Container mithilfe der Azure Storage-Clientbibliothek für JavaScript gelöscht werden. Wenn Sie das vorläufige Löschen von Containern aktiviert haben, können Sie gelöschte Container wiederherstellen.

Voraussetzungen

  • Bei den Beispielen in diesem Artikel wird davon ausgegangen, dass Sie bereits ein Projekt eingerichtet haben, das mit der Azure Blob Storage Clientbibliothek für JavaScript arbeitet. Informationen zum Einrichten Ihres Projekts, einschließlich der Paketinstallation, dem Importieren von Modulen und dem Erstellen eines autorisierten Clientobjekts für die Verwendung mit Datenressourcen, finden Sie unter Erste Schritte mit Azure Blob Storage und JavaScript.
  • Der Autorisierungsmechanismus muss über Berechtigungen zum Löschen eines Blobcontainers oder zum Wiederherstellen eines vorläufig gelöschten Containers verfügen. Weitere Informationen finden Sie im Autorisierungsleitfaden für die folgenden REST-API-Vorgänge:

Löschen eines Containers

Zum Löschen eines Containers in JavaScript erstellen Sie ein BlobServiceClient- oder ContainerClient-Objekt. Verwenden Sie dann eine der folgenden Methoden:

Nachdem Sie einen Container gelöscht haben, können Sie mindestens 30 Sekunden lang keinen Container mit demselben Namen erstellen. Beim Versuch, einen gleichnamigen Container zu erstellen, tritt der HTTP-Fehlercode 409 (Konflikt) auf. Bei allen anderen Vorgängen für den Container oder den darin enthaltenen Blobs tritt der HTTP-Fehlercode 404 (Nicht gefunden) auf.

Container mit BlobServiceClient löschen

Im folgenden Beispiel wird der angegebene Container gelöscht. Verwenden Sie das BlobServiceClient-Objekt zum Löschen eines Containers:

// 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 mit ContainerClient löschen

Im folgenden Beispiel wird gezeigt, wie mithilfe eines ContainerClient-Objekts alle Container gelöscht werden, deren Name mit einem angegebenen Präfix beginnt.

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

Wiederherstellen eines gelöschten Containers

Wenn das vorläufige Löschen für Container in einem Speicherkonto aktiviert ist, kann ein Container und dessen Inhalt nach dem Löschen innerhalb eines von Ihnen angegebenen Aufbewahrungszeitraums wiederhergestellt werden. Sie können einen vorläufig gelöschten Container mithilfe eines Objekts vom Typ BlobServiceClient wiederherstellen:

Im folgenden Beispiel wird ein gelöschter Container gefunden, die Versions-ID dieses gelöschten Containers abgerufen und dann an die Methode undeleteContainer übergeben, um den Container wiederherzustellen.

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

Ressourcen

Weitere Informationen zum Löschen eines Containers mithilfe der Azure Blob Storage-Clientbibliothek für JavaScript finden Sie in den folgenden Ressourcen.

REST-API-Vorgänge

Das Azure SDK für JavaScript enthält Bibliotheken, die auf der zugrunde liegenden Azure-REST-API basieren und ermöglicht Ihnen dadurch die Interaktion mit REST-API-Vorgängen über vertraute JavaScript-Paradigmen. Die Clientbibliotheksmethoden zum Löschen oder Wiederherstellen eines Containers verwenden die folgenden REST-API-Vorgänge:

Codebeispiele

Ressourcen zur Clientbibliothek

Weitere Informationen