管理和还原软删除的 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 显示为“已删除”状态。

显示如何在 Azure 门户中列出软删除的 Blob 的屏幕截图

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

显示 Azure 门户中软删除的 Blob 的属性的屏幕截图

显示已删除的快照

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

屏幕截图显示如何在 Azure 门户中显示已删除的快照。

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

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

显示如何在 Azure 门户中还原软删除的 Blob 的屏幕截图

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

显示如何将快照提升到基础 Blob 的屏幕截图

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

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

显示如何在 Azure 门户中提升版本以还原 Blob 的屏幕截图

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

注意

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

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

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

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

查看删除的 Blob 和目录

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

显示如何在 Azure 门户中列出软删除的 Blob(已启用分层命名空间的帐户)的屏幕截图。

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

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

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

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

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

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

显示 Azure 门户中软删除的 Blob 的属性(已启用分层命名空间的帐户)的屏幕截图。

还原软删除的 Blob 和目录

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

显示如何在 Azure 门户中还原软删除的 Blob(已启用分层命名空间的帐户)的屏幕截图。

使用 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
    

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