Compartilhar via


Excluir e restaurar um blob com TypeScript

Este artigo mostra como excluir blobs com a Biblioteca de clientes do Armazenamento do Azure para JavaScripte como restaurar os blobs excluídos suavemente durante o período de retenção.

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 TypeScript.
  • 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 blob

Observação

Quando a exclusão temporária de blob estiver habilitada em uma conta de armazenamento, não será possível executar uma exclusão permanente usando os métodos da biblioteca do cliente. Usando os métodos deste artigo, um blob, uma versão de blob ou um snapshot excluído suavemente permanece disponível até que o período de retenção expire, momento em que é excluído permanentemente. Para saber mais sobre a operação da API REST subjacente, consulte Excluir Blob (API REST).

Para excluir um blob, crie um BlobClient e chame um destes métodos:

O exemplo a seguir exclui um blob.

async function deleteBlob(
  containerClient: ContainerClient,
  blobName
): Promise<void> {
  // Create blob client from container client
  const blockBlobClient: BlockBlobClient =
    await containerClient.getBlockBlobClient(blobName);

  // include: Delete the base blob and all of its snapshots.
  // only: Delete only the blob's snapshots and not the blob itself.
  const options: BlobDeleteOptions = {
    deleteSnapshots: 'include' // or 'only'
  };
  const blobDeleteResponse: BlobDeleteResponse = await blockBlobClient.delete(
    options
  );

  if (!blobDeleteResponse.errorCode) {
    console.log(`deleted blob ${blobName}`);
  }
}

O exemplo a seguir exclui um blob, se ele existir.

async function deleteBlobIfItExists(
  containerClient: ContainerClient,
  blobName
): Promise<void> {
  // Create blob client from container client
  const blockBlobClient = await containerClient.getBlockBlobClient(blobName);

  // include: Delete the base blob and all of its snapshots.
  // only: Delete only the blob's snapshots and not the blob itself.
  const options: BlobDeleteOptions = {
    deleteSnapshots: 'include' // or 'only'
  };
  const blobDeleteIfExistsResponse: BlobDeleteIfExistsResponse =
    await blockBlobClient.deleteIfExists(options);

  if (!blobDeleteIfExistsResponse.errorCode) {
    console.log(`deleted blob ${blobName}`);
  }
}

Restaurar um blob excluído

A exclusão reversível de blobs protege um blob individual e suas versões, instantâneos e metadados de exclusões ou substituições acidentais, mantendo os dados excluídos no sistema por um período de tempo especificado. Durante o período de retenção, você pode restaurar o blob para seu estado na exclusão. Depois que o período de retenção expirar, o blob será excluído permanentemente. Para obter mais informações sobre a exclusão reversível de blobs, consulte Exclusão reversível de blobs.

Você pode usar as bibliotecas clientes de armazenamento do Azure para restaurar um blob ou instantâneo excluído de maneira reversível.

Restaurar objetos excluídos de maneira reversível quando o controle de versão estiver desabilitado

Para restaurar blobs excluídos, crie um BlobClient e chame o seguinte método:

Esse método restaura os blobs com exclusão temporária e os instantâneos excluídos associados a ele. Chamar este método em um blob que não foi excluído não tem efeito.

async function undeleteBlob(
  containerClient: ContainerClient,
  blobName
): Promise<void> {
  // Create blob client from container client
  const blockBlobClient: BlockBlobClient =
    await containerClient.getBlockBlobClient(blobName);

  const options: BlobUndeleteOptions = {};
  const blobUndeleteResponse: BlobUndeleteResponse =
    await blockBlobClient.undelete(options);

  if (!blobUndeleteResponse.errorCode) {
    console.log(`undeleted blob ${blobName}`);
  }
}

Recursos

Para saber mais sobre como excluir blobs e restaurar blobs excluídos usando a biblioteca de clientes do Armazenamento de Blobs do Azure para JavaScript, confira 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 exclusão de blobs e restauração de blobs excluídos usam as seguintes operações da API REST:

Exemplos de código

Recursos da biblioteca de clientes

Confira também