Definir a política de ciclo de vida de objetos para buckets de armazenamento

Nesta página, mostramos como definir a política de ciclo de vida de objetos para buckets de armazenamento isolados do Google Distributed Cloud (GDC).

Antes de começar

Um namespace de projeto gerencia recursos de bucket no servidor da API Management. Você precisa ter um projeto para trabalhar com buckets e objetos.

Você também precisa ter as permissões de bucket adequadas para realizar a operação a seguir. Consulte Conceder acesso ao bucket.

Definir a política de ciclo de vida de objetos no bucket

É possível usar a política de ciclo de vida de objetos para gerenciar objetos automaticamente nos buckets. Isso ajuda a armazenar dados com mais eficiência durante todo o ciclo de vida. Uma configuração de ciclo de vida é uma lista de regras para expirar um grupo de objetos com base em determinados critérios correspondentes.

É possível criar um bucket com ou sem política de ciclo de vida de objetos. Além disso, é possível aplicar, atualizar ou remover uma política de ciclo de vida depois que o bucket for criado.

Para buckets sem controle de versões, a expiração significa remover o objeto de forma assíncrona.

Para buckets com controle de versões, se a versão atual do objeto não for um marcador de exclusão, a expiração tornará a versão atual não atual e adicionará um marcador de exclusão à versão atual.

Para definir e modificar a política de ciclo de vida de objetos, atualize o campo Bucket.spec.bucketPolicy.lifecyclePolicy.

CLI

A seguir, alguns exemplos de recursos de bucket com diferentes políticas de ciclo de vida de objetos configuradas:

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

Todas as atualizações na política de ciclo de vida se aplicam aos objetos atuais e aos objetos enviados após a atualização.

Quando o bucket também tem o bloqueio de objetos configurado, os objetos são protegidos contra expiração antes do término dos dias de retenção.