Google近线何时通过生命周期管理删除文件?

时间:2016-10-10 23:54:12

标签: google-cloud-storage

TL; DR 我想知道我为Google近线创建的生命周期规则是否正确,但Google云存储尚未删除我认为应该在我的测试中应该删除的文件,尽管等待了一对几天。

更长的版本

我正在使用版本控制和版本设置Google近线存储空间进行备份我试图管理旧版本的保存。我已经阅读了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,其中声明"不保证会立即删除它,但通常会在不到一天的时间内发生"。

所以,似乎有三件事情之一:

  1. 我还没有等待足够长的时间
  2. 我的生命周期规则出现了问题
  3. 我测试它的方式有问题
  4. 有谁能告诉我这三个中的哪一个?

1 个答案:

答案 0 :(得分:1)

你只需要再等一会儿。 由于云存储近线用于您不经常访问的数据,因此应用实时规则可能需要更多时间,而不是其他Google云端存储选项。

您不希望频繁访问的数据(即每月不超过一次)。通常这是灾难恢复的备份数据,或者归档的所谓”冷“存储,可能会也可能不会将来需要。

https://cloud.google.com/storage/docs/storage-classes