物件生命週期管理設定範例

總覽 設定

本頁面顯示物件生命週期管理的設定範例。 設定 bucket 的生命週期後,系統會對 bucket 中符合條件的現有和未來物件,執行指定的動作。

刪除舊版物件

以下生命週期設定定義兩個規則。請注意,只有在 bucket 使用物件版本管理時,這些規則才適用:

  1. 如果 bucket 中有 2 個較新版本的物件,則刪除非現行版本的物件。受這項規則約束的物件會永久刪除,無法復原。

  2. 在物件非現行 7 天後,刪除物件的非現行版本。適用這項規則的物件會永久刪除,無法復原。

如果值區使用物件版本管理功能,這兩項規則的綜合效果是:如果物件遭到覆寫或刪除,使用中物件會有時間視窗,可供復原。這類物件會以非現行狀態保留在值區中七天,或直到值區中出現 2 個較新的物件版本為止。

控制台

這些設定會使用「設定設定」一節中的操作說明。

  1. 如要刪除物件的非現行版本 (如有較新版本):

    1. 選取「刪除物件」動作。
    2. 選取「Live state」條件,然後選取「Noncurrent」圓形按鈕。
    3. 選取「較新版本數量」條件,然後輸入 2。
  2. 如要在物件成為非現行版本 7 天後刪除這些版本,請按照下列步驟操作:

    1. 選取「刪除物件」動作。
    2. 選取「成為非現行版本後至今的天數」條件,然後輸入值 7。

指令列

您可以啟用生命週期管理,將下列生命週期設定套用至 bucket。

{
  "lifecycle": {
    "rule": [
      {
        "action": {"type": "Delete"},
        "condition": {
          "numNewerVersions": 2,
          "isLive": false
        }
      },
      {
        "action": {"type": "Delete"},
        "condition": {
          "daysSinceNoncurrentTime": 7
        }
      }
    ]
  }
}

如需要生命週期設定檔案的通用格式,請參閱 JSON 適用的值區資源表示法說明。

REST API

JSON API

您可以啟用生命週期管理,將下列生命週期設定套用至 bucket。

{
  "lifecycle": {
    "rule": [
      {
        "action": {"type": "Delete"},
        "condition": {
          "numNewerVersions": 2,
          "isLive": false
        }
      },
      {
        "action": {"type": "Delete"},
        "condition": {
          "daysSinceNoncurrentTime": 7
        }
      }
    ]
  }
}

如需要生命週期設定檔案的通用格式,請參閱 JSON 適用的值區資源表示法說明。

XML API

您可以啟用生命週期管理,將下列生命週期設定套用至 bucket。

<?xml version="1.0" encoding="UTF-8" ?>
<LifecycleConfiguration>
    <Rule>
        <Action>
            <Delete/>
        </Action>
        <Condition>
            <IsLive>false</IsLive>
            <NumberOfNewerVersions>2</Age>
        </Condition>
    </Rule>
    <Rule>
        <Action>
            <Delete/>
        </Action>
        <Condition>
            <DaysSinceNoncurrentTime>7</DaysSinceNoncurrentTime>
        </Condition>
    </Rule>
</LifecycleConfiguration>

如需要生命週期設定檔的通用格式,請參閱 XML 適用的生命週期設定格式說明。

設定修改

視目標而定,您可以對這個範例設定進行多項修改:

  • 如要限制現有物件的生命週期,請建立額外規則,並使用 Delete 動作、設為 true 的 isLive 條件,以及 age 條件。

  • 如要防止資料意外刪除,但不想防止意外覆寫,請將較新版本數量設為 1,這樣也能減少物件版本數量,降低儲存費用。

  • 如果資料是以 Nearline Storage、Coldline Storage 或 Archive Storage 的形式儲存,請新增 age 條件,或為 daysSinceNoncurrentTime 使用較大的值,以免產生提前刪除費用。請注意,即使進行這類變更,您仍可能產生提前刪除費用,具體取決於覆寫和刪除物件的頻率。

變更物件的的儲存空間級別

以下生命週期設定定義兩個規則。

  1. 如果物件的存在時間超過 365 天 (一年),且目前的儲存空間級別為 Standard Storage,名稱結尾為 .jpg 或 .png,請將物件的儲存空間級別變更為 Nearline Storage。
  2. 如果物件存在時間超過 1095 天 (三年),且目前的儲存空間級別為 Nearline Storage,名稱結尾為 .jpg 或 .png,則將物件的儲存空間級別變更為 Coldline Storage。

控制台

這些設定會使用「設定」一節中的操作說明。

  1. 如要在物件建立 365 天後將其移至 Nearline Storage 儲存空間,請按照下列步驟操作:

    1. 選取「將儲存空間級別設為 Nearline」動作。
    2. 選取「物件名稱與後置字串相符」規則範圍。
    3. 在顯示的欄位中輸入 .jpg,然後按下 Enter 鍵。然後輸入 .png,並再次按下 Enter 鍵。
    4. 選取「Age」(存在時間) 條件,然後輸入 365。
    5. 選取「儲存空間級別符合」條件,然後選擇「Standard」選項。
  2. 如要將物件移至 Coldline Storage 儲存空間,請在物件建立 1095 天後執行下列操作:

    1. 選取「將儲存空間級別設為 Coldline」動作。
    2. 選取「物件名稱與後置字串相符」規則範圍。
    3. 在顯示的欄位中輸入 .jpg,然後按下 Enter 鍵。接著輸入 .png,然後再次按下 Enter 鍵。
    4. 選取「年齡」條件,然後輸入值「1095」。
    5. 選取「Storage class matches」(儲存空間級別相符) 條件,然後選擇「Nearline」選項。

指令列

您可以啟用生命週期管理,將下列生命週期設定套用至 bucket。

{
  "lifecycle": {
    "rule": [
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "NEARLINE"
        },
        "condition": {
          "age": 365,
          "matchesStorageClass": [
            "STANDARD"
          ],
          "matchesSuffix": [
            ".jpg",
            ".png"
          ]
        }
      },
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "COLDLINE"
        },
        "condition": {
          "age": 1095,
          "matchesStorageClass": [
            "NEARLINE"
          ],
          "matchesSuffix": [
            ".jpg",
            ".png"
          ]
        }
      }
    ]
  }
}

如需要生命週期設定檔案的通用格式,請參閱 JSON 適用的值區資源表示法說明。

REST API

JSON API

您可以啟用生命週期管理,將下列生命週期設定套用至 bucket。

{
  "lifecycle": {
    "rule": [
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "NEARLINE"
        },
        "condition": {
          "age": 365,
          "matchesStorageClass": [
            "STANDARD"
          ],
          "matchesSuffix": [
            ".jpg",
            ".png"
          ]
        }
      },
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "COLDLINE"
        },
        "condition": {
          "age": 1095,
          "matchesStorageClass": [
            "NEARLINE"
          ],
          "matchesSuffix": [
            ".jpg",
            ".png"
          ]
        }
      }
    ]
  }
}

如需要生命週期設定檔案的通用格式,請參閱 JSON 適用的值區資源表示法說明。

XML API

您可以啟用生命週期管理,將下列生命週期設定套用至 bucket。

<?xml version="1.0" encoding="UTF-8" ?>
<LifecycleConfiguration>
    <Rule>
        <Action>
            <SetStorageClass>NEARLINE</SetStorageClass>
        </Action>
        <Condition>
            <Age>365</Age>
            <MatchesStorageClass>STANDARD</MatchesStorageClass>
            <MatchesSuffix>.jpg</MatchesSuffix>
            <MatchesSuffix>.png</MatchesSuffix>
        </Condition>
    </Rule>
    <Rule>
        <Action>
            <SetStorageClass>COLDLINE</SetStorageClass>
        </Action>
        <Condition>
            <Age>1095</Age>
            <MatchesStorageClass>NEARLINE</MatchesStorageClass>
            <MatchesSuffix>.jpg</MatchesSuffix>
            <MatchesSuffix>.png</MatchesSuffix>
        </Condition>
    </Rule>
</LifecycleConfiguration>

如需要生命週期設定檔的通用格式,請參閱 XML 適用的生命週期設定格式說明。

您可以根據目標,在這個範例設定中新增其他條件。舉例來說,您可以根據物件大小新增條件:

  • 將極小的物件轉換至存取頻率較低的儲存空間級別,可能不符合成本效益。舉例來說,如果只想變更大小超過 5 MiB 的物件儲存空間級別,請新增 sizeAboveBytes 條件,並將值設為 5242880。
  • 如要變更特定大小範圍內物件的儲存空間級別,請在同一規則中同時使用 sizeAboveBytes 和 sizeBelowBytes 條件。

移除生命週期設定

在值區上設定時,下列生命週期設定會移除所有規則,藉此停用生命週期管理:

控制台

  1. 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。

    前往「Buckets」(值區) 頁面

  2. 在 bucket 清單中,點選要移除生命週期規則的 bucket 名稱。

  3. 按一下「Lifecycle」分頁標籤。

  4. 執行下列任一操作:

    • 如要移除所有規則,請按一下「全部刪除」。

    • 如要移除個別規則,請點按要刪除規則的「從值區刪除這項規則」。

指令列

使用 gcloud storage buckets update 指令,並加上 --clear-lifecycle 旗標:

gcloud storage buckets update gs://BUCKET_NAME --clear-lifecycle

其中 BUCKET_NAME 是要移除生命週期設定的值區名稱。

REST API

JSON API

{
  "lifecycle": {
    "rule": []
  }
}

如需要生命週期設定檔案的通用格式,請參閱 JSON 適用的值區資源表示法說明。

XML API

<?xml version="1.0" encoding="UTF-8" ?>
<LifecycleConfiguration/>

如需要生命週期設定檔的通用格式,請參閱 XML 適用的生命週期設定格式說明。

後續步驟