对象生命周期管理的配置示例

概览 设置

本页面显示了对象生命周期管理的示例配置。在存储桶上设置生命周期配置时,存储桶中当前和未来的对象都满足您定义的条件,并且具有指定的操作

删除旧对象版本

以下生命周期配置定义了两个规则。请注意,只有在存储桶上使用对象版本控制时,这些规则才适用:

  1. 如果存储桶中有 2 个较新版本的对象,请删除对象的非当前版本。受此规则约束的对象将被永久删除并且无法恢复。

  2. 删除以非当前版本状态保留 7 天的非当前版本对象。受此规则约束的对象将被永久删除并且无法恢复。

在使用对象版本控制的存储桶中,这两种规则的组合效果是,活跃对象具有时间范围,如果这些对象被覆盖或被删除,则可以在该时间范围内进行恢复:此类对象会在存储桶中以非当前版本状态保留七天,或者保留到存储桶中有 2 个较新版本的对象为止。

控制台

这里的设置遵循了设置配置部分中的说明。

  1. 如需在已有较新版本的情况下删除非当前版本对象,请执行以下操作:

    1. 选择删除对象操作。
    2. 选择有效状态条件,然后选择非当前单选按钮。
    3. 选择较新版本的数量条件,然后输入值 2
  2. 如需删除以非当前版本状态保留 7 天的非当前版本对象,请执行以下操作:

    1. 选择删除对象操作。
    2. 选择变为非当前版本后的天数条件,然后输入值 7

命令行

通过启用生命周期管理,可以将以下生命周期配置应用于存储桶。

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

如需了解生命周期配置文件的通用格式,请参阅适用于 JSON 的存储桶资源表示法

REST API

JSON API

通过启用生命周期管理,可以将以下生命周期配置应用于存储桶。

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

如需了解生命周期配置文件的通用格式,请参阅适用于 JSON 的存储桶资源表示法

XML API

通过启用生命周期管理,可以将以下生命周期配置应用于存储桶。

<?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 操作、设置为 trueisLive 条件,以及 age 条件。

  • 如果要保护数据免遭意外删除而非意外覆盖,请将较新版本的数量设置为 1,这样做也可以缩减存储费用,因为您可以保留较少的对象版本。

  • 如果您的数据以 Nearline Storage、Coldline Storage 或 Archive Storage 形式存储,请添加 age 条件或使用更大的 daysSinceNoncurrent 值以避免支付提前删除费用。请注意,即使发生此类更改,您也可能要支付提前删除费用,具体取决于您覆盖和删除对象的频率。

更改对象的存储类别

以下生命周期配置定义了两条规则:

  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. 选择存在时间条件,然后输入值 365
    5. 选择存储类别符合条件,然后选择 Standard 选项。
  2. 如需在对象创建 1095 天后将对象移动到 Coldline Storage,请执行以下操作:

    1. 选择将存储类别设置为 Coldline 操作。
    2. 选择对象名称与后缀匹配规则范围。
    3. 在显示的字段中输入 .jpg,并按 Enter 键。然后输入 .png,并再次按 Enter 键。
    4. 选择存在时间条件,然后输入值 1095
    5. 选择存储类别符合条件,然后选择 Nearline 选项。

命令行

通过启用生命周期管理,可以将以下生命周期配置应用于存储桶。

{
  "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

通过启用生命周期管理,可以将以下生命周期配置应用于存储桶。

{
  "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

通过启用生命周期管理,可以将以下生命周期配置应用于存储桶。

<?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 的生命周期配置格式

移除生命周期配置

在存储桶上设置以后,以下生命周期配置会通过移除所有规则来停用生命周期管理:

控制台

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击要移除其生命周期规则的存储桶的名称。

  3. 点击Lifecycle标签页。

  4. 点击全部删除,或点击与要删除的规则关联的垃圾桶图标来删除个别规则。

命令行

使用带有 --clear-lifecycle 标志的 gcloud storage buckets update 命令:

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 的生命周期配置格式

后续步骤