管理和還原虛刪除的 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 顯示狀態為「已刪除」。

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

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