Compartir a través de

使用 JavaScript 删除和还原 Blob

本文介绍如何使用适用于 JavaScript 的 Azure 存储客户端库删除 Blob,以及如何在保留期内还原软删除的 Blob。

先决条件

  • 本文中的示例假设你已经设置了一个项目来使用适用于 JavaScript 的 Azure Blob 存储客户端库。 若要了解如何设置项目(包括安装包、导入模块,以及创建授权客户端对象来使用数据资源),请参阅开始使用 Azure Blob 存储和 JavaScript
  • 授权机制必须具有删除 blob 或还原软删除 blob 的权限。 若要了解详细信息,请参阅以下 REST API 操作的授权指南:

删除 Blob

注意

为存储帐户启用 Blob 软删除后,无法使用客户端库方法执行永久删除。 如果使用本文中所述的方法,软删除的 Blob、Blob 版本或快照在保留期结束之前会一直保持可用,保留期结束后将被永久删除。 若要详细了解基础 REST API 操作,请参阅删除 Blob (REST API)

若要删除 Blob,请创建 BlobClient,然后调用以下任一方法:

下面的示例删除 Blob。

async function deleteBlob(containerClient, 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 = {
    deleteSnapshots: 'include' // or 'only'
  }

  // Create blob client from container client
  const blockBlobClient = await containerClient.getBlockBlobClient(blobName);

  await blockBlobClient.delete(options);

  console.log(`deleted blob ${blobName}`);

}

下面的示例删除 Blob(如果存在)。

async function deleteBlobIfItExists(containerClient, 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 = {
    deleteSnapshots: 'include' // or 'only'
  }

  // Create blob client from container client
  const blockBlobClient = await containerClient.getBlockBlobClient(blobName);

  await blockBlobClient.deleteIfExists(options);

  console.log(`deleted blob ${blobName}`);

}

还原已删除的 Blob

Blob 软删除会在系统中将已删除的数据保留指定的一段时间,可以在意外删除或覆盖单个 Blob 及其版本、快照和元数据时提供保护。 在保留期内,可以将 Blob 还原到它在删除时的状态。 在指定的保留期已过后,Blob 将永久被删除。 有关 Blob 软删除的详细信息,请参阅 Blob 的软删除

可以使用 Azure 存储客户端库来还原软删除的 Blob 或快照。

禁用版本控制时还原软删除的对象

若要还原已删除的 Blob,请创建 BlobClient,然后调用以下方法:

此方法可还原软删除的 blob 以及与之关联的所有已删除快照。 对未删除的 Blob 调用此方法不会起作用。

async function undeleteBlob(containerClient, blobName){

  // Create blob client from container client
  const blockBlobClient = await containerClient.getBlockBlobClient(blobName);

  await blockBlobClient.undelete();

  console.log(`undeleted blob ${blobName}`);

}

资源

若要详细了解如何使用适用于 JavaScript 的 Azure Blob 存储客户端库来删除 Blob 和还原已删除的 Blob,请参阅以下资源。

REST API 操作

Azure SDK for JavaScript 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 JavaScript 范例与 REST API 操作进行交互。 用于删除 Blob 和还原已删除 Blob 的客户端库方法使用以下 REST API 操作:

代码示例

客户端库资源

另请参阅