【问题标题】:When does Google Nearline delete files via lifecycle management?Google Nearline 何时通过生命周期管理删除文件?
【发布时间】: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,其中说“不保证会立即删除,但通常会在不到一天的时间内发生”。

因此,似乎发生了以下三件事之一:

  1. 我只是等待的时间不够长
  2. 我的生命周期规则有问题
  3. 我测试它的方式有问题

谁能告诉我这三个是哪一个?

【问题讨论】:

    标签: google-cloud-storage


    【解决方案1】:

    你只需要再等一会儿。 由于 Cloud Storage Nearline 用于您不经常访问的数据,因此与其他 Google Cloud Storage 选项相比,它可能需要更多时间来应用生命周期规则。

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

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

    【讨论】:

    • 感谢您的保证 :-) 所以,只是为了确认一下:我设置的规则看起来是正确的,我正在运行的测试看起来是有效的?
    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 2021-04-19
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    相关资源
    最近更新 更多