管理和還原虛刪除的 Blob

Blob 虛刪除可保護個別的 Blob 及其版本、快照集和中繼資料,將刪除的資料保留在系統中一段指定時間,避免不小心刪除或覆寫資料。 在保留期間內,您可以在刪除時將 Blob 還原至其狀態。 保留期限到期後,即會永久刪除該 Blob。 您無法在保留期間到期前永久刪除已虛刪除的 Blob。 如需關於 Blob 虛刪除的詳細資訊,請參閱 Blob 的虛刪除

Blob 虛刪除是 Blob 資料的完整資料保護策略的一部分。 若要深入了解 Microsoft 的資料保護建議,請參閱資料保護概觀

本文說明如何使用 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 或目錄屬性。 在 [概觀] 索引標籤下,請注意狀態設定為 [已刪除]。 入口網站還會顯示 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
    

    如果您重新命名包含虛刪除項目的目錄,這些項目就會與目錄中斷連接。 如果您想要還原這些項目,您必須將目錄的名稱還原回其原始名稱,或建立使用原始目錄名稱的不同目錄。 否則,當您嘗試還原這些虛刪除的項目時,將會收到錯誤。

下一步