虛刪除功能可保護 Cloud Storage 資料,防止物件或 bucket 遭到意外或惡意刪除。虛刪除功能會將刪除或覆寫的物件和 bucket 保留在虛刪除狀態一段時間,在這段期間,物件或 bucket 無法永久刪除,但可以還原。
系統會為所有支援虛刪除功能的值區預設啟用這項功能,預設保留期限為 7 天。您可以使用標記設定不同的預設保留時長。
本頁說明軟刪除的運作方式。
虛刪除政策
如果值區已啟用虛刪除功能,刪除值區或值區內的物件時,資源會進入虛刪除狀態,而不是永久刪除。如要在值區上啟用虛刪除功能,請設定虛刪除政策,定義虛刪除資源的保留時間長度。
虛刪除政策的運作方式如下:
虛刪除政策包含保留期限,可定義虛刪除的資源要保留多久,才會永久刪除。預設保留期限為 7 天,您可以自訂保留期限,範圍為 7 到 90 天。如要停用虛刪除功能,請將保留時長設為 0。
系統會自動為所有新建立的值區設定預設的虛刪除政策,但如果值區使用的產品或功能與虛刪除功能不相容 (例如使用 Rapid Bucket 的區域值區),則不在此限。
您可以在建立或更新值區時,設定、編輯或停用虛刪除政策。
編輯虛刪除政策時,您所做的變更只會套用至新政策生效後刪除的資源。在新政策生效前刪除的資源,會按照資源刪除時的原始保留時間保留。換句話說,現有虛刪除資源會繼續遵守刪除時的有效保留期限。
舉例來說,假設您在 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。
如果專案遭到刪除,啟用虛刪除功能的 bucket 會保留虛刪除保留時間,或Google Cloud 專案復原期限,以較短者為準。過了這段時間後,系統就會永久刪除值區。
如果還原已刪除的專案,專案刪除時的現用 bucket 會還原為現用 bucket。專案刪除時虛刪除的 bucket 會維持虛刪除狀態,直到保留期限結束為止。
如果 Bucket 未啟用虛刪除功能,專案刪除後 Bucket 可能會立即刪除,且無法還原。
部分 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 政策,才能取得還原虛刪除物件的必要權限。
標記:如果您建立值區時未自行加入軟刪除設定,Cloud Storage 預設會建立值區,並將軟刪除保留時間設為七天。如要變更這項預設值,請使用代碼。這個標記可將新 bucket 的預設保留時長變更為 7 到 90 天之間的任何值,也可以將預設值變更為在新 bucket 上停用虛刪除功能。您也可以使用標記,根據預設停用軟刪除。
建議工具:您可以啟用 Recommender API,根據 Cloud Billing 費用和用量,接收啟用或停用軟刪除功能的建議和洞察資訊。詳情請參閱「軟刪除建議工具」。
後續步驟
- 瞭解如何設定虛刪除政策。
- 瞭解如何還原虛刪除的物件。
- 瞭解
storage.softDeletePolicySeconds政策限制。