为存储分区设置对象生命周期政策

本页面介绍了如何为 Google Distributed Cloud (GDC) 气隙存储分区设置对象生命周期政策。

准备工作

项目命名空间用于管理 Management API 服务器中的存储桶资源。您 必须拥有项目才能使用存储分区和对象。

您还必须拥有相应的存储桶权限才能执行以下操作。请参阅授予存储桶访问权限

在存储桶上设置对象生命周期政策

您可以使用对象生命周期政策自动管理存储分区中的对象。这有助于您在数据的整个生命周期内更高效地存储数据。生命周期配置是根据某些匹配条件使一组对象过期的规则列表。

您可以创建具有或不具有对象生命周期政策的存储桶。并且,您可以在创建存储桶后应用新生命周期政策、更新现有生命周期政策或移除现有生命周期政策。

对于未启用版本控制的存储分区,过期意味着以异步方式永久移除对象。

对于已启用版本控制的存储分区,如果当前对象版本不是删除标记,则过期会将当前版本设为非当前版本,然后向当前版本添加删除标记。

如需设置和修改对象生命周期政策,请更新 Bucket.spec.bucketPolicy.lifecyclePolicy 字段。

CLI

以下是一些配置了不同对象生命周期政策的存储桶资源的示例:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire all objects after 365 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 365
        id: expire-all-after-365-days
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects in the logs/ directory after 30 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 30
        id: expire-logs-dir-after-30-days
        status: Enabled
        filter:
          prefixFilter: "logs/"
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects having specific tag after 30 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 30
        id: expire-tagged-objects-after-30-days
        status: Enabled
        filter:
          tagFilters:
          - key: environment
            value: dev
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire noncurrent versions after 90 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - noncurrentExpiration:
          noncurrentDays: 90
        id: expire-noncurrent-after-90-days
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects on a specific date"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          date: "2027-01-01T00:00:00Z"
        id: expire-on-specific-date
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with multiple lifecycle rules and advanced filters"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      # Rule 1: Expire objects in 'tmp/' directory AND tagged with 'status=ready' after 7 days
      - expiration:
          days: 7
        id: expire-ready-tmp-objects
        status: Enabled
        filter:
          prefixFilter: "tmp/"
          tagFilters:
          - key: status
            value: ready
      # Rule 2: Expire all objects in 'logs/' directory after 90 days
      - expiration:
          days: 90
        id: expire-logs-after-90-days
        status: Enabled
        filter:
          prefixFilter: "logs/"

对生命周期政策进行的任何更新都适用于现有对象以及在更新后上传的对象。

如果存储桶还配置了对象锁定,则在保留天数结束之前,对象会受到保护,不会过期。