Compartilhar via


Excluir ou restaurar um contêiner de blob com JavaScript

Este artigo mostra como excluir contêineres com a biblioteca de clientes do Armazenamento do Azure para JavaScript. Se você habilitou a exclusão temporária de contêiner, é possível restaurar contêineres excluídos.

Pré-requisitos

  • Os exemplos neste artigo pressupõem que você já tenha um projeto configurado para trabalhar com a biblioteca de clientes do Armazenamento de Blobs do Azure para JavaScript. Para saber mais sobre a configuração do seu projeto, incluindo a instalação de pacotes, a importação de módulos e a criação de um objeto cliente autorizado para trabalhar com recursos de dados, confira Introdução ao Armazenamento de Blobs do Azure e o JavaScript.
  • O mecanismo de autorização deve ter permissões para excluir um contêiner de blob ou restaurar um contêiner excluído temporariamente. Para saber mais, confira as diretrizes de autorização para as seguintes operações de API REST:

Excluir um contêiner

Para excluir um contêiner em JavaScript, crie um BlobServiceClient ou um ContainerClient e use um dos seguintes métodos:

Depois de excluir um contêiner, você não poderá criar um contêiner com o mesmo nome por pelo menos 30 segundos. A tentativa de criar um contêiner com o mesmo nome falhará com o código de erro HTTP 409 (Conflito). Qualquer outra operação no contêiner ou nos blobs que ele contém falhará com o código de erro HTTP 404 (Não Encontrado).

Excluir contêiner com BlobServiceClient

O exemplo a seguir exclui o contêiner especificado. Use o BlobServiceClient para excluir um contêiner:

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

Excluir contêiner com ContainerClient

O exemplo a seguir mostra como excluir todos os contêineres cujo nome começa com um prefixo especificado usando um 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`);
    }
  }
}

Restaurar um contêiner excluído

Quando a exclusão temporária de contêineres está habilitada para uma conta de armazenamento, um contêiner e seu conteúdo podem ser recuperados após serem excluídos, dentro de um período de retenção especificado por você. Você pode restaurar um contêiner excluído temporariamente usando um objeto BlobServiceClient:

O exemplo a seguir localiza um contêiner excluído, obtém a ID da versão do contêiner excluído e, em seguida, passa essa ID para o método undeleteContainer para restaurar o contêiner.

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

Recursos

Para saber mais sobre como excluir um contêiner usando a biblioteca de clientes do Armazenamento de Blobs do Azure para JavaScript, consulte os recursos a seguir.

Operações da API REST

O SDK do Azure para JavaScript contém bibliotecas que se baseiam na API REST do Azure, permitindo a interação com as operações de API REST por meio de paradigmas conhecidos do JavaScript. Os métodos da biblioteca de clientes para excluir ou restaurar um contêiner usam as seguintes operações da API REST:

Exemplos de código

Recursos da biblioteca de clientes

Confira também