物件生命週期管理

為了支援常見用途,例如為物件設定存留時間 (TTL)、封存物件的較舊版本或是將物件儲存空間級別「降級」,Cloud Storage 提供了物件生命週期管理功能。本頁面將說明這項功能及可用選項。要瞭解如何啟用物件生命週期管理,以及生命週期政策的範例,請參閱管理生命週期相關頁面。

簡介

您可以將生命週期管理設定指派給值區。此設定包含一組適用於值區中目前和未來物件的規則。當物件符合其中一個規則的條件時,Cloud Storage 會自動對此物件執行指定的操作。下面是一些範例用途:

  • 將超過 365 天的物件儲存空間級別降級到 Coldline Storage。
  • 刪除 2013 年 1 月 1 日之前建立的物件。
  • 在啟用版本管理的值區中,僅保留每個物件的 3 個最新版本。

生命週期設定

每個生命週期管理設定都包含一組規則。定義規則時,您可以為任何操作指定任何一組條件。如果在規則中指定多個條件,則物件必須符合要採取操作的「所有」條件。如果指定的多個規則包含相同操作,則會在物件與「任何」規則中的條件相符時執行操作。每條規則應只包含一項操作。

如果單一物件要進行多項操作,則 Cloud Storage 僅執行其中一項操作,並會在執行任何其他操作之前重新評估此物件。刪除操作優先順序高於 SetStorageClass 操作。如果指定了多個 SetStorageClass 操作,則會選擇切換到最低靜態儲存空間定價的儲存空間級別的操作。

因此,假設您有一項刪除物件的規則和另一項更改物件儲存空間級別的規則,但兩項規則都使用完全相同的條件,則在滿足條件時會一律執行刪除操作。如果您有一項規則物件的級別更改為 Nearline Storage,而另一項規則將物件的級別更改為 Coldline Storage,但兩項規則都使用完全相同的條件,則在滿足條件時,物件的級別會一律更改為 Coldline Storage。

生命週期操作

生命週期規則支援以下操作:

  • 刪除:刪除使用中和/或封存物件 (「使用中」物件為非封存產生版本的物件,詳情請參閱物件版本管理一文)。此操作可套用於版本化和非版本化物件。在啟用版本管理的值區中,刪除使用中物件會將物件封存,而刪除封存物件會永久刪除該物件。

  • SetStorageClass:變更使用中物件和/或封存物件的儲存空間級別。此操作可套用於版本化和非版本化物件,並支援以下儲存空間級別轉換:

    原始儲存空間級別 新儲存空間級別
    Multi-Regional Storage Nearline Storage
    Coldline Storage
    Regional Storage Nearline Storage
    Coldline Storage
    Nearline Storage Coldline Storage

生命週期條件

生命週期規則支援以下條件:

  • Age:當物件達到指定存在時間 (以天為單位) 時,則滿足此條件。存在時間從物件的建立時間開始測量。例如,如果物件的建立時間為世界標準時間 2019/01/10 10:00,Age 條件為 10 天,則世界標準時間 2019/01/20 10:00 或之後的物件符合該條件。即使物件有時在建立之後透過物件版本管理功能封存也是如此。

  • CreatedBefore:在世界標準時間的指定日期午夜前建立的物件,即滿足此條件。

  • IsLive:如果值為 true,則此生命週期條件僅有使用中物件符合;如果值為 false,則僅有已封存物件符合。為符合此條件的目的,在非版本化值區中的物件會視為使用中。

  • MatchesStorageClass:當值區中的物件儲存為指定儲存空間級別時,即滿足此條件。一般來說,如果您想針對 Multi-Regional Storage 或 Regional Storage 的物件使用此條件,應同時在條件中包含 STANDARDDURABLE_REDUCED_AVAILABILITY,以確保涵蓋類似儲存空間級別的所有物件。

  • NumberOfNewerVersions:僅與版本化物件相關。如果此條件的值設置為「N」,則物件在至少有較新的「N 個」版本 (包括使用中版本) 時滿足此條件。對使用中物件來說,較新版本的數量視為 0。至於最新的封存版本,較新版本的數量為 1 (如果沒有使用中物件,則為 0),依此類推。

所有條件都是選擇性的,但至少需要有一個條件。如果嘗試設定無效的生命週期設定 (如使用不存在的操作或條件),則會收到 400 Bad request 錯誤回應,且任何現有的生命週期設定仍然保持原狀。

關於使用生命週期設定的範例,請參閱管理物件生命週期一文。如需生命週期設定檔的通用格式,請參閱 JSON 適用的值區資源表示法XML 適用的生命週期設定格式的相關說明。

物件生命週期行為

  • Cloud Storage 會定期檢查已設定物件生命週期管理的值區中的所有物件,並根據值區規則執行所有適用的操作。

    例如,如果物件滿足刪除條件,可能不會立即刪除該物件。在對物件執行生命週期操作之前,您仍能看到該物件。此物件的儲存不會收費,但存取此物件而產生的任何適用操作及頻寬會依定價頁面中所述收費。

  • 生命週期設定的更新最多可能需要 24 小時才會生效。這表示在變更生命週期設定時,物件生命週期管理仍會根據舊的設定執行操作,最長可達 24 小時。

    舉例來說,如果您將 Age 條件從 10 天設為 20 天,物件生命週期管理最晚會在 24 小時內根據舊設定的條件,將已建立 11 天的物件刪除。

  • 當物件設有訴訟保留或尚未達成的保留政策時,物件生命週期的 Delete 操作不會在物件上生效。在物件具有訴訟保留或保留政策限制時發生的任何 Delete 操作,會在限制不再適用於物件後生效。

  • 物件生命週期 SetStorageClass 操作不受物件訴訟保留或保留政策的影響。

提前刪除 Nearline Storage 和 Coldline Storage 物件

物件生命週期管理在變更儲存空間級別時不會重寫物件。這表示物件在使用 SetStorageClass 功能轉換為 Nearline Storage 或 Coldline Storage 時,任何後續的提前刪除與相關費用都是根據物件的原始建立時間,不論儲存空間級別何時更改。

例如,假設您將物件上傳為 Regional Storage,20 天後,您的生命週期設定會將物件的儲存空間級別更改為 Nearline Storage。如果您隨後立即刪除該物件,則會有 10 天的提前刪除費用,因為該物件已存在 20 天。如果在將儲存空間級別變更為 Nearline Storage 的 10 天後刪除物件,則不會產生提前刪除費用,因為該物件已存在 30 天。

相較之下,假設您將物件上傳為 Regional Storage,並在 20 天後使用重寫變更儲存空間級別 (同樣更改為 Nearline Storage)。如果您之後立即刪除該物件,則會產生完整的 30 天提前刪除費用,因為重寫時間成為新的建立時間。同樣地,如果您在重寫後等待 10 天再刪除物件,則會產生 20 天的提前刪除費用。

到期時間中繼資料

如果為值區指定在 Age 條件 (且沒有 NumberOfNewerVersions 條件) 下進行 Delete 操作,則某些物件會標記到期時間中繼資料。物件的到期時間表示物件 (已) 符合資格,可由物件生命週期管理進行刪除的時間。到期時間可能會隨值區的生命週期設定或保留政策的變更而更改。

請注意,沒有過期時間中繼資料並不表示一定不會刪除物件,而是沒有足夠的資訊確定何時或是否將其刪除。例如,如果物件的建立時間是 2013/01/10 10:00 (世界標準時間) 且 Age 條件設為 10 天,則物件的到期時間為 2013/01/20 10:00 (世界標準時間)。然而,如果符合以下條件,則物件不會有到期時間:

  • 也指定 NumberOfNewerVersions 條件。在這種情況下,如果新增了新版本,仍可能刪除舊版本的物件。

  • 也指定 CreatedBefore 條件且設定為「2013-01-01」,因為物件不符合此條件。

  • 物件處於訴訟保留狀態,因為 Cloud Storage 無法得知何時會移除訴訟保留狀態。

即使未立即刪除物件,系統也不會在物件到期時間後收取儲存費用。您可以在刪除物件之前繼續存取該物件,且負擔其他費用 (要求、網路頻寬)。如果物件沒有到期時間,則系統會收取物件儲存費用,直到物件被刪除為止。

您可以存取物件中繼資料內的物件到期時間 (如果有)。REST API 會在 x-goog-expiration 回應標頭中回傳物件的到期時間。

處理到期時間時,請注意以下事項:

  • 如果值區有保留政策,則到期時間是以下二者較晚者:物件生命週期管理 Age 條件,以及物件符合保留政策指定保留期限的時間。

  • 如果由於不同的生命週期管理規則而有多個適用於物件的到期時間,則使用最早的適用到期時間。

追蹤生命週期操作的選項

要追蹤 Cloud Storage 進行的生命週期管理操作,請使用以下選項之一:

  • 使用 Cloud Storage 存取記錄。此功能記錄操作和執行操作的人員。位於記錄項目 cs_user_agent 欄位的 GCS Lifecycle Management 值表示 Cloud Storage 根據生命週期設定所進行的操作。

  • 為您的值區啟用 Cloud Storage 的 Cloud Pub/Sub 通知。在進行指定操作時,此功能會傳送通知到您選擇的 Cloud Pub/Sub 主題。請注意,此功能不會記錄執行操作的人員。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Storage
需要協助嗎?請前往我們的支援網頁