管理和还原软删除的 Blob

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

Blob 软删除是针对 Blob 数据的综合性数据保护策略的一部分。 若要详细了解 Azure 的数据保护建议,请参阅数据保护概述

本文介绍如何使用 Azure 门户、PowerShell 或 Azure CLI 查看和还原软删除的 Blob 和快照。 还可以使用 Blob 存储客户端库之一来管理软删除的对象。

查看和管理软删除的 Blob(平面命名空间)

可以使用 Azure 门户来查看和还原软删除的 Blob 与快照。 还原软删除的对象略有不同,具体取决于是否也为存储帐户启用了 Blob 版本控制。 有关详细信息,请参阅还原软删除的版本

查看已删除的 Blob

将 Blob 软删除后,默认情况下它们不会显示在 Azure 门户中。 若要查看软删除的 Blob,请导航到容器的“概述”页,并切换“显示已删除的 Blob”设置 。 软删除的 Blob 显示为“已删除”状态。

Screenshot showing how to list soft-deleted blobs in Azure portal

接下来,从 Blob 列表中选择已删除的 Blob,以显示其属性。 在“概述”选项卡下,可以看到 Blob 的状态设置为“已删除” 。 门户还会显示在永久删除该 Blob 之前剩余的天数。

Screenshot showing properties of soft-deleted blob in Azure portal

显示已删除的快照

删除某个 Blob 也会删除与该 Blob 关联的所有快照。 如果软删除的 Blob 具有快照,也可以在 Azure 门户中显示已删除的快照。 显示软删除的 Blob 的属性,导航到“快照”选项卡,然后切换为“显示已删除的快照” 。

Screenshot showing how to display deleted snapshots in Azure portal.

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

若要在未启用 Blob 版本控制的情况下在 Azure 门户中还原软删除的某个 Blob,请先显示该 Blob 的属性,然后选择“概述”选项卡上的“取消删除”按钮。还原某个 Blob 也会还原在软删除保留期内删除的所有快照 。

Screenshot showing how to restore a soft-deleted blob in Azure portal

若要将软删除的快照提升到基础 Blob,请先确保已还原 Blob 的已软删除快照。 选择“取消删除”按钮以还原 Blob 的已软删除快照,即使基础 Blob 本身尚未软删除。 接下来,选择要提升的快照,并使用“提升快照”按钮来用快照内容覆盖基础 Blob。

Screenshot showing how to promote a snapshot to the base blob

启用版本控制时还原软删除的 Blob

若要在启用了版本控制的情况下在 Azure 门户中还原软删除的 Blob,请选择软删除的 Blob 以显示其属性,然后选择“版本”选项卡。选择要提升为当前版本的版本,然后选择“设为当前版本” 。

Screenshot showing how to promote a version to restore a blob in Azure portal

若要在启用了版本控制的情况下还原已删除的版本或快照,请显示 Blob 的属性,然后选择“概述”选项卡上的“取消删除”按钮 。

注意

启用版本控制后,对已删除的 Blob 选择“取消删除”按钮会还原所有已软删除的版本或快照,但不会还原基础 Blob。 若要还原基础 Blob,必须提升前一个版本。

查看和管理软删除的 Blob 和目录(分层命名空间)

可以在具有分层命名空间的帐户中还原软删除的 Blob 和目录。

可以使用 Azure 门户来查看和还原软删除的 Blob 与目录。

查看删除的 Blob 和目录

将 Blob 或目录软删除后,默认情况下它们不会显示在 Azure 门户中。 若要查看软删除的 Blob 和目录,请导航到容器的“概述”页,并切换“显示已删除的 Blob”设置 。 软删除的 Blob 和目录显示为“已删除”状态。 下图显示一个软删除的目录。

Screenshot showing how to list soft-deleted blobs in Azure portal (hierarchical namespace enabled accounts).

在切换“显示已删除的 blob”设置时,Azure 门户中可能不会显示软删除的 blob 和目录的原因有两个。

  • 如果安全主体仅依赖于访问控制列表 (ACL) 条目进行授权,则不会显示软删除的 blob 和目录。

    要显示这些项,你必须是帐户的所有者,或者必须向安全主体分配存储 Blob 数据所有者存储 Blob 数据参与者存储 Blob 数据读取者角色。

  • 如果重命名包含软删除项(子目录和 blob)的目录,则这些软删除项将与目录断开连接,因此它们不会显示。

    如果要在 Azure 门户中查看它们,则必须将目录的名称还原为原始名称,或者创建一个使用原始目录名称的单独目录。

你可以通过从列表中选择软删除的 blob 或目录来显示其属性。 在“概述”选项卡下,可以看到状态设置为“已删除” 。 门户还会显示在永久删除该 Blob 之前剩余的天数。

Screenshot showing properties of soft-deleted blob in Azure portal (hierarchical namespace enabled accounts).

还原软删除的 Blob 和目录

若要在 Azure 门户中还原软删除的 Blob 或目录,请首先显示 Blob 或目录的属性,然后选择“概述”选项卡上的“取消删除”按钮。下图显示了软删除的目录上的“取消删除”按钮。

Screenshot showing how to restore a soft-deleted blob in Azure portal (hierarchical namespace enabled accounts).

使用 PowerShell 还原软删除的 Blob 和目录

重要

本部分仅适用于具有分层命名空间的帐户。

  1. 请确保已安装“Az.Storage”预览版模块。 有关详细信息,请参阅通过 PowerShell 启用 Blob 软删除

  2. 使用存储帐户密钥、连接字符串或 Microsoft Entra ID 获取存储帐户授权。 有关详细信息,请参阅连接到帐户

    以下示例使用存储帐户密钥获取授权。

    $ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -StorageAccountKey '<storage-account-key>'
    
  3. 若要还原软删除项,请使用 Restore-AzDataLakeGen2DeletedItem 命令。

    $filesystemName = "my-file-system"
    $dirName="my-directory"
    $deletedItems = Get-AzDataLakeGen2DeletedItem -Context $ctx -FileSystem $filesystemName -Path $dirName
    $deletedItems | Restore-AzDataLakeGen2DeletedItem
    

    如果你重命名了包含软删除项的目录,则这些项会与目录断开连接。 如果要还原这些项,则必须将目录的名称还原为原始名称,或者创建一个使用原始目录名称的单独目录。 否则,在尝试还原这些软删除项时,会出现错误。

使用 Azure CLI 还原软删除的 Blob 和目录

重要

本部分仅适用于具有分层命名空间的帐户。

  1. 请确保已安装了 storage-preview 扩展。 有关详细信息,请参阅通过使用 PowerShell 启用 Blob 软删除

  2. 获取删除项列表。

    $filesystemName = "my-file-system"
    az storage fs list-deleted-path -f $filesystemName --auth-mode login
    
  3. 若要还原某个项,请使用 az storage fs undelete-path 命令。

    $dirName="my-directory"
    az storage fs undelete-path -f $filesystemName --deleted-path-name $dirName --deletion-id "<deletionId>" --auth-mode login
    

    如果你重命名了包含软删除项的目录,则这些项会与目录断开连接。 如果要还原这些项,则必须将目录的名称还原为原始名称,或者创建一个使用原始目录名称的单独目录。 否则,在尝试还原这些软删除项时,会出现错误。

后续步骤