【问题标题】:Restore Entire Bucket恢复整个存储桶
【发布时间】:2017-10-17 10:13:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: google-cloud-storage gsutil


    【解决方案1】:

    鉴于上述生命周期配置,您的活动对象不应该被删除,至少 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
    

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

    【讨论】:

    • 我认为你是对的,这是唯一的方法...... 糟糕的是,没有办法改变文件的元生成来让它们恢复正常。即使每 x# 个文件这样做的成本与进行数据传输的成本相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    相关资源
    最近更新 更多