物件生命週期管理

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

簡介

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

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

生命週期設定

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

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

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

生命週期操作

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

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

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

    原始儲存空間級別 新儲存空間級別
    DRA 版網路硬碟 Nearline Storage
    Coldline StorageMulti-Regional Storage/Regional Storage1
    Multi-Regional Storage Nearline Storage
    Coldline Storage
    Regional Storage Nearline Storage
    Coldline Storage
    Standard Storage Nearline Storage
    Coldline Storage
    Nearline Storage Coldline Storage

    1 對於 [region] (地區) 中的值區,新的儲存空間級別不能是 Multi-Regional Storage。針對多地區或雙地區中的值區,新的儲存空間級別不能是 Regional Storage。

生命週期條件

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

  • Age:當物件達到指定存在時間 (以天為單位) 時,則滿足此條件。存在時間從物件的建立時間開始測量。舉例來說,如果物件建立時間為 2019/01/10 10:00 (世界標準時間) 且 Age 條件為 10 天,則 2019/01/20 10:00 (世界標準時間 )當天及之後的物件條件都會滿足。即使物件在建立之後的某個時間透過物件版本管理進行封存,也是如此。

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

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

  • MatchesStorageClass:當值區中的物件儲存為指定儲存空間級別時,即滿足此條件。您可以為 MatchesStorageClass 使用以下值:STANDARDNEARLINECOLDLINEMULTI_REGIONALREGIONALDURABLE_REDUCED_AVAILABILITY

    通常,如果打算在 Standard Storage 物件上使用 MatchesStorageClass 條件,則還應包括以下內容:

    • 如果值區位於單一地區中,請在條件中加入 REGIONALDURABLE_REDUCED_AVAILABILITY

    • 如果值區位於多地區或雙地區中,請在條件中加入 MULTI_REGIONALDURABLE_REDUCED_AVAILABILITY

    包含這些額外的類別可確保生命週期規則涵蓋值區中可能設為舊版儲存空間類別的較舊物件。

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

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

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

物件生命週期行為

  • Cloud Storage 會定期檢查已設定物件生命週期管理的值區中的所有物件,並根據值區規則執行所有適用的操作。Cloud Storage 非同步執行操作,因此在條件滿足和操作執行之間可能會有延遲。

    例如,如果有某個物件滿足刪除條件,該物件可能不會立即遭到刪除。因此,您會一直看到這個物件,直到系統對它執行生命週期操作為止。適用費用在物件存在時仍然適用,但有一個例外:如果物件因為僅具有 age 條件的規則而為 delete 操作對象,則免除靜態存儲成本。

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

    例如,如果將 Age 條件從 10 天變更為 20 天,則由於舊設定的條件,已建立 11 天的物件仍可能在變更後 24 小時內被物件生命週期管理刪除。

  • 當物件具有保留設定,或是尚未屆滿保留政策所規定的期間時,物件生命週期的 Delete 操作便不會生效。在物件具有保留設定或保留政策限制時發生的任何 Delete 操作,並不會即時生效,而是在限制解除後才會生效。

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

提前刪除 Nearline Storage 和 Coldline Storage 物件

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

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

相較之下,假設您將物件上傳為 Standard 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
需要協助嗎?請前往我們的支援網頁