Sdílet prostřednictvím


Odstranění a obnovení kontejneru objektů blob pomocí JavaScriptu

Tento článek ukazuje, jak odstranit kontejnery s klientskou knihovnou Azure Storage pro JavaScript. Pokud jste povolili obnovitelné odstranění kontejneru, můžete odstraněné kontejnery obnovit.

Požadavky

  • Příklady v tomto článku předpokládají, že už máte projekt nastavený tak, aby fungoval s klientskou knihovnou Azure Blob Storage pro JavaScript. Další informace o nastavení projektu, včetně instalace balíčku, importu modulů a vytvoření autorizovaného klientského objektu pro práci s datovými prostředky, najdete v tématu Začínáme se službou Azure Blob Storage a JavaScriptem.
  • Autorizační mechanismus musí mít oprávnění k odstranění kontejneru objektů blob nebo obnovení obnovitelného odstraněného kontejneru. Další informace najdete v pokynech k autorizaci pro následující operace rozhraní REST API:

Odstranění kontejneru

Pokud chcete odstranit kontejner v JavaScriptu, vytvořte objekt BlobServiceClient nebo ContainerClient a pak použijte jednu z následujících metod:

Po odstranění kontejneru nemůžete vytvořit kontejner se stejným názvem alespoň po dobu 30 sekund. Pokus o vytvoření kontejneru se stejným názvem selže s kódem chyby HTTP 409 (Konflikt). Všechny ostatní operace v kontejneru nebo objektech blob, které obsahuje, selžou s kódem chyby HTTP 404 (Nenalezena).

Odstranění kontejneru pomocí BlobServiceClient

Následující příklad odstraní zadaný kontejner. Pomocí Objektu blobServiceClient odstraňte kontejner:

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

Odstranění kontejneru pomocí ContainerClient

Následující příklad ukazuje, jak odstranit všechny kontejnery, jejichž název začíná zadanou předponou pomocí 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`);
    }
  }
}

Obnovení odstraněného kontejneru

Pokud je pro účet úložiště povolené obnovitelné odstranění kontejneru, může se po odstranění obnovit kontejner a jeho obsah během zadané doby uchovávání. Obnovitelně odstraněný kontejner můžete obnovit pomocí objektu BlobServiceClient :

Následující příklad najde odstraněný kontejner, získá ID verze tohoto odstraněného kontejneru a pak toto ID předá do metody undeleteContainer pro obnovení kontejneru.

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

Zdroje informací

Další informace o odstranění kontejneru pomocí klientské knihovny Azure Blob Storage pro JavaScript najdete v následujících zdrojích informací.

Operace rozhraní REST API

Sada Azure SDK pro JavaScript obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat JavaScriptu. Metody klientské knihovny pro odstranění nebo obnovení kontejneru používají následující operace rozhraní REST API:

Ukázky kódu

Prostředky klientské knihovny

Viz také