虛刪除功能可保護 Cloud Storage 資料,防止物件或 bucket 遭到意外或惡意刪除。虛刪除功能會將刪除或覆寫的物件和 bucket 保留在虛刪除狀態一段時間,在這段期間,物件或 bucket 無法永久刪除,但可以還原。
系統會預設為所有支援虛刪除功能的值區啟用這項功能,預設保留期限為 7 天。您可以使用標記設定不同的預設保留時長。
本頁說明軟刪除的運作方式。
虛刪除政策
如果值區已啟用虛刪除功能,刪除值區或值區內的物件時,資源會進入虛刪除狀態,而不是永久刪除。如要在值區上啟用虛刪除功能,請設定虛刪除政策,定義虛刪除資源的保留時間長度。
虛刪除政策的運作方式如下:
虛刪除政策包含保留期限,可定義虛刪除的資源要保留多久,才會永久刪除。預設保留期限為 7 天,您可以自訂保留期限,範圍為 7 到 90 天。如要停用虛刪除功能,請將保留時長設為 0。
系統會自動為所有新建立的值區設定預設的虛刪除政策,但如果值區使用的產品或功能與虛刪除功能不相容 (例如使用 Rapid Bucket 的區域值區),則不在此限。
您可以在建立或更新值區時,設定、編輯或停用虛刪除政策。
編輯虛刪除政策時,您所做的變更只會套用至新政策生效後刪除的資源。在新政策生效前刪除的資源,會按照資源刪除時的原始保留時間保留。換句話說,現有虛刪除資源會繼續遵守刪除時的有效保留期限。
舉例來說,假設您在值區中設定虛刪除政策,保留時長為七天。您刪除物件
object-A.png,該物件會遭到虛刪除。接著,您將政策的保留期限變更為 10 天,然後刪除物件object-B.png,該物件也會變成軟刪除。object-A.png會以虛刪除狀態保留七天,object-B.png則會保留 10 天。虛刪除政策的保留期限變更最多需要 30 秒才會生效。
如要瞭解如何設定及管理 bucket 的虛刪除政策,請參閱「設定及管理虛刪除政策」。
虛刪除資源的屬性
如果值區或物件是在啟用虛刪除政策的情況下刪除,資源會進入虛刪除狀態。您可以在保留期限內還原虛刪除的資源。
軟刪除資源具有下列特性:
虛刪除的物件和 bucket 無法讀取、修改或覆寫。 目前僅支援列出或還原作業。
根據預設,虛刪除的資源會從清單作業中隱藏。如要查看軟刪除的資源,您必須明確指定標記或篩選器,才能查看資源。
您無法修改虛刪除的 bucket 或列出其內容,必須先還原 bucket 本身。還原虛刪除 bucket 的方法會影響 bucket 中的物件是否也會還原:
您可以使用 Google Cloud 控制台,同時還原虛刪除的值區及其物件。
使用 Google Cloud CLI 或 JSON API 還原 bucket 時,系統只會還原空 bucket。然後,您必須在另一個作業中還原物件,才能復原內容。
如果新運作中的 bucket 使用了某個 bucket 名稱,您必須先移除衝突的運作中 bucket,才能還原已軟刪除的 bucket。
如果 Google Cloud 專案遭到刪除,即使值區或物件已啟用虛刪除功能,您也無法使用虛刪除功能還原這些項目。
部分 Cloud Storage 功能與虛刪除政策相容,但不會影響虛刪除的物件。這類功能包括自動調整級別、物件生命週期管理、值區鎖定和物件保留鎖定。
如需還原虛刪除物件或 bucket 的操作說明,請參閱「還原虛刪除物件」或「還原虛刪除 bucket」。
物件還原
還原虛刪除的物件時,Cloud Storage 會在同一個值區中建立該物件的新使用中副本。原始的虛刪除版本會保留在背景,直到保留期限正式到期為止。以下清單說明核心還原行為:
還原物件時,Cloud Storage 會產生新版本的物件。如要進一步瞭解物件版本,請參閱「物件不變原則」。
如果還原虛刪除的物件時,已有同名的使用中物件,還原的物件會覆寫現有的使用中版本。系統會自動虛刪除先前使用中的覆寫物件。
在這個特定情境中,值區會包含兩個還原的物件副本 (一個是新的使用中副本,另一個是舊的虛刪除副本),以及遭覆寫物件的新虛刪除版本。
無論物件的原始儲存層或任何有效的自動調整級別設定為何,所有還原的物件都會寫入 Standard Storage 儲存空間級別。
物件還原方法
您可以根據規模需求,使用下列任一執行路徑還原軟刪除的物件:
還原路徑重複的物件
雖然不常見,但啟用階層式命名空間的 bucket 中,可能會出現名稱和產生編號值相同的重複虛刪除物件。如果啟用階層命名空間,且 bucket 中有同名物件,重新命名含有這些物件的資料夾時,就可能發生衝突。在這種情況下,兩個虛刪除的物件可能巧合地共用相同的版本編號,但這種情況很少發生。
如要瞭解這個情境,請參閱以下範例:
您在名為
my-folder-A的資料夾中,有一個名為cat.png的物件。cat.png的產生版本編號為999。您刪除cat.png,該項目會進入虛刪除狀態。刪除空白的上層資料夾
my-folder-A。儲存空間的其他位置有名為「
my-folder-B」的資料夾。這個資料夾內有名為cat.png的不同物件。純屬巧合,這個cat.png物件也獲派999的產生版本編號。將my-folder-B重新命名為my-folder-A。由於有階層式命名空間,物件路徑會變更為my-folder-A/cat.png。您刪除第二個
cat.png,這會變成虛刪除。
現在有兩個名為 cat.png 的虛刪除物件,產生編號為 999。
如要還原、列出或存取重複項目中的特定軟刪除物件版本,您必須在要求中提供專屬的 restoreToken 參數。在啟用階層式命名空間的 bucket 中還原、列出或存取虛刪除的物件版本時,必須加入 restoreToken 參數。如果存在重複物件,但您未加入 restoreToken 參數,系統就會顯示錯誤訊息,提示您提供權杖。如果提交的權杖、名稱或版本編號有誤,系統會傳回錯誤訊息,指出找不到物件。如要進一步瞭解 restoreToken 參數,請參閱objects.restore 方法。
定價
虛刪除的物件會持續產生儲存空間費用,直到保留期限結束並永久刪除為止。如果物件在最短儲存時間結束前遭到虛刪除,系統會收取提前刪除費用,除非該物件儲存在 Standard Storage。
如要進一步瞭解與軟刪除相關的費用,請參閱 Cloud Storage 定價。
使用虛刪除功能時,降低暫時物件的費用
如果值區主要包含短期暫時物件,則啟用值區的軟刪除功能可能會導致儲存空間費用大幅增加。為協助您降低臨時物件的費用,建議採取下列做法:
如要重新命名物件,請使用
objects.moveJSON API 方法自動重新命名物件。請勿透過複製物件來重新命名。將暫時性物件儲存在未啟用虛刪除功能的值區中。
臨時物件通常會在刪除前經歷短暫的生命週期。 暫時物件可能包括:
用於建立複合物件的來源資料
為短期用途重新產生的資料,例如查詢結果或暫存檔案
寫入和刪除頻率高的工作負載資料 (例如每天刪除數百萬筆資料)
可永久刪除的資料,不會對生產連續性造成任何影響
與其他產品和功能的互動
啟用軟刪除功能後,系統會以以下方式處理其他產品和功能:
Rapid Bucket:使用 Rapid Bucket 的區域 bucket 不支援軟刪除。
-
物件生命週期管理規則不會影響已軟刪除的物件。您無法使用物件生命週期管理功能變更虛刪除物件的儲存空間級別,也無法永久刪除這類物件。
物件生命週期管理刪除的物件會變成虛刪除狀態。如果 bucket 也啟用物件版本管理功能,刪除的使用中物件會變成非現行物件,刪除的非現行物件則會變成軟刪除。
物件版本管理:刪除非現行物件時,系統會虛刪除該物件。
XML API 多部分上傳作業:XML API 多部分上傳作業的部分不會受到軟刪除保護。
自動分類:
系統不會針對虛刪除的物件收取自動調整級別管理費用。
自動調整級別功能不會變更虛刪除物件的儲存空間級別。
還原虛刪除的物件時,系統會將產生的物件設為 Standard Storage 儲存空間級別。
值區鎖定和物件保留鎖定功能:這些功能會防止您刪除物件,直到物件符合保留政策為止。虛刪除功能會將刪除的物件保留一段虛刪除保留期限,提供額外一層保護。
Pub/Sub 通知:還原物件的暫時刪除版本會觸發 OBJECT_FINALIZE 事件。
代管資料夾:軟刪除無法還原代管資料夾的 IAM 政策。如果您虛刪除物件,並刪除授予物件 IAM 政策的受管理資料夾,可能必須先重新建立這些 IAM 政策,才能取得還原虛刪除物件所需的權限。
標記:如果您建立 bucket 時未自行加入虛刪除設定,Cloud Storage 預設會建立 bucket,並將虛刪除保留時間設為七天。如要變更這項預設值,請使用代碼。這個標記可將新 bucket 的預設保留時長變更為 7 到 90 天之間的任何值,也可以將預設值變更為在新 bucket 上停用虛刪除功能。您也可以使用標記,根據預設停用軟刪除。
建議工具:您可以啟用 Recommender API,根據 Cloud Billing 費用和用量,接收啟用或停用軟刪除功能的建議和洞察資訊。詳情請參閱「軟刪除建議工具」。
後續步驟
- 瞭解如何使用虛刪除功能。
- 瞭解如何使用軟刪除的物件。
- 瞭解
storage.softDeletePolicySeconds政策限制。