Usuwanie i przywracanie kontenera obiektów blob za pomocą języka JavaScript

W tym artykule pokazano, jak usuwać kontenery za pomocą biblioteki klienta usługi Azure Storage dla języka JavaScript. Jeśli włączono usuwanie nietrwałe kontenera, możesz przywrócić usunięte kontenery.

Wymagania wstępne

  • W przykładach w tym artykule założono, że masz już skonfigurowany projekt do pracy z biblioteką klienta usługi Azure Blob Storage dla języka JavaScript. Aby dowiedzieć się więcej o konfigurowaniu projektu, w tym instalacji pakietu, importowaniu modułów i tworzeniu autoryzowanego obiektu klienta do pracy z zasobami danych, zobacz Rozpoczynanie pracy z usługami Azure Blob Storage i JavaScript.
  • Mechanizm autoryzacji musi mieć uprawnienia do usuwania kontenera obiektów blob lub przywracania kontenera usuniętego nietrwale. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dla następujących operacji interfejsu API REST:

Usuwanie kontenera

Aby usunąć kontener w języku JavaScript, utwórz obiekt BlobServiceClient lub ContainerClient, a następnie użyj jednej z następujących metod:

Po usunięciu kontenera nie można utworzyć kontenera o tej samej nazwie przez co najmniej 30 sekund. Próba utworzenia kontenera o tej samej nazwie zakończy się niepowodzeniem z kodem błędu HTTP 409 (konflikt). Wszystkie inne operacje w kontenerze lub obiektach blob, które zawiera, nie powiedzą się z kodem błędu HTTP 404 (Nie znaleziono).

Usuwanie kontenera za pomocą obiektu BlobServiceClient

Poniższy przykład usuwa określony kontener. Użyj obiektu BlobServiceClient , aby usunąć kontener:

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

Usuwanie kontenera za pomocą elementu ContainerClient

W poniższym przykładzie pokazano, jak usunąć wszystkie kontenery, których nazwa zaczyna się od określonego prefiksu przy użyciu elementu 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`);
    }
  }
}

Przywracanie usuniętego kontenera

Po włączeniu usuwania nietrwałego kontenera dla konta magazynu kontener i jego zawartość mogą zostać odzyskane po jego usunięciu w określonym okresie przechowywania. Kontener usunięty nietrwale można przywrócić przy użyciu obiektu BlobServiceClient :

Poniższy przykład znajduje usunięty kontener, pobiera identyfikator wersji usuniętego kontenera, a następnie przekazuje ten identyfikator do metody undeleteContainer w celu przywrócenia kontenera.

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

Zasoby

Aby dowiedzieć się więcej na temat usuwania kontenera przy użyciu biblioteki klienta usługi Azure Blob Storage dla języka JavaScript, zobacz następujące zasoby.

Operacje interfejsu API REST

Zestaw Azure SDK dla języka JavaScript zawiera biblioteki, które bazują na interfejsie API REST platformy Azure, co umożliwia interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów języka JavaScript. Metody biblioteki klienta do usuwania lub przywracania kontenera używają następujących operacji interfejsu API REST:

Przykłady kodu

Zasoby biblioteki klienta

Zobacz też