【发布时间】:2017-12-21 15:46:21
【问题描述】:
我一直在尝试对存储在 GCP 存储中的对象实施生命周期管理,但总体上没有成功。
首先,我有一个按日期存储对象的存储桶。 (管道运行的中间和文件)所以我想保留,比如说可能过去 10 天,但随后我想转移到更多存档用途。
所以我在这个存储桶上创建了以下生命周期.json:
{
"lifecycle":{
"rule":[
{
"action":{
"type":"SetStorageClass",
"storageClass":"NEARLINE"
},
"condition":{
"age":3,
"matchesStorageClass":[
"REGIONAL",
"STANDARD",
"DURABLE_REDUCED_AVAILABILITY"
]
}
},
{
"action":{
"type":"SetStorageClass",
"storageClass":"COLDLINE"
},
"condition":{
"age":10,
"matchesStorageClass":[
"NEARLINE"
]
}
},
{
"action":{
"type":"Delete"
},
"condition":{
"age":10,
"matchesStorageClass":[
"COLDLINE"
]
}
}
]
}
}
根据本手册:https://cloud.google.com/storage/docs/managing-lifecycles#enable
当我使用 gsutil 设置生命周期时,它会接受它,当我得到它时它会显示它。
但并非所有文件似乎都受到配置的影响,我认为它取决于文件大小,例如
所有文件都是在同一天上传的(有 1 小时的窗口)。但只有一些是近线,一些仍然是区域性的。在这个目录中,临界点大约是 100MB,但在另一个 300MB+ 的文件中,它变成了近线
我的问题:
- 如何保持一致?
- 是否某些文件仍在处理中?
- 我可以在任何地方监控这个过程吗?
- 如果现在跳过,我该如何重新触发这些文件,因为我在此存储桶中仍有文件大小为 +1GB,但超过 23 天且仍存在于区域存储桶中
--- 更新 20170720 ---
根据要求,我已经运行了命令:
gsutil ls -L gs://yourbucket
一个大的 csv 文件,现在应该删除:
Creation time: Tue, 27 Jun 2017 12:23:08 GMT
Update time: Tue, 27 Jun 2017 12:23:08 GMT
Storage class: REGIONAL
Content-Length: 1184976409
Content-Type: text/csv
Component-Count: 23
Hash (crc32c): ggHfjw==
ETag: COqC4oqC3tQCEAE=
Generation: 1498566188630378
Metageneration: 1
屏幕截图中的文件目录已被处理,低于一定文件大小的所有内容都已删除:
剩下的文件也应该被删除了:
Creation time: Sat, 08 Jul 2017 10:00:57 GMT
Update time: Sat, 08 Jul 2017 10:00:57 GMT
Storage class: REGIONAL
Content-Length: 469342393
Content-Type: application/octet-stream
Component-Count: 9
Hash (crc32c): Ux3HKw==
ETag: COLb3ei2+dQCEAE=
Generation: 1499508057271778
Metageneration: 1
ACL: [
因此我们可以排除文件同时被修改的事实。
【问题讨论】:
-
请注意,您显示的浏览器屏幕截图显示“上次修改时间”,它来自
updated时间戳字段。 Lifecycle 使用timeCreated时间戳字段作为Age条件。你能运行gsutil ls -L gs://yourbucket并确认timeCreated是你所期望的吗?
标签: google-cloud-platform google-cloud-storage