如何使用 CLI 设置 Google 云存储桶 (GCS) 文件对象过期 (TTL)

时间:2021-06-21 16:21:16

标签: google-cloud-storage gcloud

我想为新的 GCS 存储分区设置政策,以便文件在 14 天后过期(TTL、生存时间或生命周期结束)。

我用

gsutil mb \
  -p ${GCP_PROJECT_ID} \
    gs://$GCS_BUCKET_NAME \
  --retention 14d

它不起作用。这是为什么?

1 个答案:

答案 0 :(得分:1)

GCS 存储分区 TTL 和保留策略 我误解了 --retention 的意图。 保留策略是管理存储桶中的对象必须保留多长时间,而不是它何时到期或生存时间。 https://cloud.google.com/storage/docs/bucket-lock

--retention 14d 表示不允许在 14 天内删除对象。这并不意味着对象有 14 天的生命周期,并会在 14 天后过期并被删除。

要为 GCS 存储桶正确设置 TTL,请改为执行以下操作

 # set GCS bucket object TTL
  echo '    
  {
      "rule":
      [
        {
          "action": {"type": "Delete"},
          "condition": {"age": 14}
        }
      ]
    }
  ' > gcs_lifecycle.tmp
  gsutil lifecycle set gcs_lifecycle.tmp gs://$GCS_BUCKET_NAME
  rm gcs_lifecycle.tmp
相关问题