恢复整个存储桶

时间:2017-05-17 19:40:46

标签: google-cloud-storage gsutil

我在谷歌云存储上有一些存储桶,我猜测我的生命周期文件设置不正确,因为我的所有存储桶现在都是空的。

{
  "lifecycle": {
    "rule": [
      {
        "action": {"type": "Delete"},
        "condition": {
          "age": 60,
          "isLive": false
        }
      },
      {
        "action": {"type": "Delete"},
        "condition": {
          "numNewerVersions": 3 
        }
      }
    ]
  }
}

由于我打开了版本控制并且我可以在存储桶上看到使用ls -la的文件是否有任何方法可以恢复所有文件以及如何防止它们再次被删除?

1 个答案:

答案 0 :(得分:0)

鉴于上面的生命周期配置,您的实时对象不应该已被删除,至少不会被GCS生命周期管理流程删除。

无论如何,我能想到的恢复对象的最快方法是关注gsutil's instructions for copying versioned buckets

$ gsutil mb gs://mynewbucket

# This step is only necessary if you want to keep all archived versions.
$ gsutil versioning set on gs://mynewbucket

$ gsutil cp -r -A gs://oldbucket/* gs://mynewbucket

这将从旧存储桶到新存储桶按照从最旧到最新的顺序复制每个对象的所有存档版本。如果您没有在新存储桶中启用版本控制,那么最终只能得到每个对象的一个​​副本(对象的每个复制版本都将覆盖该对象的先前版本)。此外,对于可能没有实时版本的任何对象,最新的归档版本将成为新版本中的实时版本。