使用 JavaScript 或 TypeScript 删除和还原 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,请调用以下一种方法:

如果 Blob 具有任何关联的快照,则必须删除其所有快照才能删除该 Blob。 以下代码示例演示如何删除 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'
  }

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

  await blockBlobClient.delete(options);
}

还原已删除的 Blob

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

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

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

若要还原已软删除的 Blob,请调用以下方法:

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

async function undeleteBlob(containerClient, blobName){

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

  await blockBlobClient.undelete();
}

资源

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

代码示例

REST API 操作

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

客户端库资源

另请参阅

  • 本文是适用于 JavaScript/TypeScript 的 Blob 存储开发人员指南的一部分。 要了解详细信息,请参阅构建 JavaScript/TypeScript 应用中的完整开发人员指南文章列表。