【发布时间】:2016-10-11 22:09:42
【问题描述】:
TL;DR我想知道我为 Google 近线创建的生命周期规则是否正确,但 Google Cloud Storage 没有删除我认为在我的测试中应该删除的文件,尽管等待了几个天。
加长版
我正在使用版本控制为备份设置 Google Nearline 存储,并且我正在尝试管理旧版本的保存。我通读了the documentation on Object Lifecycle Management,我想我明白了,但它的行为不像我预期的那样。
情况是这样的。
按照文档中的示例,我设置了生命周期管理以保留 6 个版本的文件,删除任何旧版本。这是我用来设置的json 文档:
{
"rule": [
{
"action": {
"type": "Delete"
},
"condition": {
"numNewerVersions": 6
}
}
]
}
我用
实现了那个规则(保存在一个名为nearline.json的文件中)
gsutil lifecycle set nearline.json gs://bucket_name
我检查以确保规则已成功应用
gsutil lifecycle get gs://bucket_name
并回复{"rule": [{"action": {"type": "Delete"}, "condition": {"numNewerVersions": 6}}]} - 因此,看来该规则已成功应用。
接下来,我开始测试它,通过执行以下命令来创建一个包含多个修订的简单测试文件:
# append the current unix timestamp to my test file
echo "Date = $(date +%s)" >> test.txt
# send the new revision to nearline
gsutil cp test.txt gs://bucket_name
我总共做了 10 次。
接下来,我查看了 Google 在存储桶中显示的内容。运行 gsutil ls -la gs://bucket_name 给出:
23 2016-10-08T15:59:59Z gs://bucket_name/test.txt#1475942400031000 metageneration=1
46 2016-10-08T16:00:09Z gs://bucket_name/test.txt#1475942410008000 metageneration=1
69 2016-10-08T16:00:18Z gs://bucket_name/test.txt#1475942418466000 metageneration=1
92 2016-10-08T16:00:26Z gs://bucket_name/test.txt#1475942426563000 metageneration=1
115 2016-10-08T16:00:38Z gs://bucket_name/test.txt#1475942438484000 metageneration=1
138 2016-10-08T16:00:44Z gs://bucket_name/test.txt#1475942444562000 metageneration=1
161 2016-10-08T16:00:54Z gs://bucket_name/test.txt#1475942454455000 metageneration=1
184 2016-10-08T16:01:06Z gs://bucket_name/test.txt#1475942466301000 metageneration=1
207 2016-10-08T16:01:16Z gs://bucket_name/test.txt#1475942476052000 metageneration=1
230 2016-10-08T16:01:50Z gs://bucket_name/test.txt#1475942510806000 metageneration=1
所以,看起来一切都成功了。除此之外,我看到所有十个条目,而不是只看到六个条目。
我应该看到六个条目,因为我设置的规则说要删除具有六个或更多新版本的项目。这应该包括上面列表中的前四个版本,因为它们都有六个或更多新版本。
现在文档确实说“如果一个对象满足删除条件,则该对象可能不会立即被删除”,但已经有几天了,还没有发生。我确实找到了this answer,其中说“不保证会立即删除,但通常会在不到一天的时间内发生”。
因此,似乎发生了以下三件事之一:
- 我只是等待的时间不够长
- 我的生命周期规则有问题
- 我测试它的方式有问题
谁能告诉我这三个是哪一个?
【问题讨论】: