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

Hui*_*eng 2 google-cloud-storage gcloud

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

我用

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

Run Code Online (Sandbox Code Playgroud)

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

Hui*_*eng 6

--retention仔细阅读GCS Bucket TTL和保留策略后,我发现我误解了flag的意图。

保留策略--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
Run Code Online (Sandbox Code Playgroud)