Udostępnij za pośrednictwem


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

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, użyj następującej metody z klasy BlobServiceClient :

Kontener można również usunąć przy użyciu następującej metody z klasy ContainerClient :

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 kończy się niepowodzeniem z kodem 409 (Conflict)błędu HTTP . Wszelkie inne operacje w kontenerze lub obiektach blob, które zawiera, kończą się niepowodzeniem z kodem 404 (Not Found)błędu HTTP .

W poniższym przykładzie użyto BlobServiceClient obiektu do usunięcia określonego kontenera:

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

W poniższym przykładzie pokazano, jak usunąć wszystkie kontenery rozpoczynające się od określonego prefiksu:

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

Przywracanie usuniętego kontenera

Po włączeniu usuwania nietrwałego kontenera dla konta magazynu kontener i jego zawartość można odzyskać 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 umożliwia znalezienie usuniętego kontenera, pobranie identyfikatora wersji usuniętego kontenera, a następnie przekazanie tego identyfikatora do undeleteContainer metody w celu przywrócenia kontenera.

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

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.

Przykłady kodu

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:

Zasoby biblioteki klienta

Zobacz też

  • Ten artykuł jest częścią przewodnika dla deweloperów usługi Blob Storage dla języka JavaScript/TypeScript. Aby dowiedzieć się więcej, zobacz pełną listę artykułów z przewodnika dla deweloperów na stronie Tworzenie aplikacji JavaScript/TypeScript.