我想为新的 GCS 存储分区设置政策,以便文件在 14 天后过期(TTL、生存时间或生命周期结束)。
我用
gsutil mb \
-p ${GCP_PROJECT_ID} \
gs://$GCS_BUCKET_NAME \
--retention 14d
它不起作用。这是为什么?
答案 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