Google cloud storage 恢复整个存储桶
我在谷歌云存储上有几个存储桶,我猜我的生命周期文件没有正确设置,因为我所有的存储桶现在都是空的Google cloud storage 恢复整个存储桶,google-cloud-storage,gsutil,Google Cloud Storage,Gsutil,我在谷歌云存储上有几个存储桶,我猜我的生命周期文件没有正确设置,因为我所有的存储桶现在都是空的 { "lifecycle": { "rule": [ { "action": {"type": "Delete"}, "condition": { "age": 60, "isLive": false } }, { "action": {"type":
{
"lifecycle": {
"rule": [
{
"action": {"type": "Delete"},
"condition": {
"age": 60,
"isLive": false
}
},
{
"action": {"type": "Delete"},
"condition": {
"numNewerVersions": 3
}
}
]
}
}
既然我已经打开了版本控制,并且我可以使用存储桶上的
ls-la
查看文件,那么有没有办法恢复所有文件,以及如何防止它们再次被删除?鉴于上面的生命周期配置,您的活动对象不应该被删除,至少不应该被GCS生命周期管理过程删除
无论如何,我能想到的恢复对象的最快方法是:
这将按照从旧存储桶到新存储桶的顺序,将每个对象的所有存档版本复制到新存储桶。如果不在新bucket中启用版本控制,那么最终只会得到每个对象的一个副本(对象的每个复制版本将覆盖该对象的以前版本)。此外,对于任何可能没有实时版本的对象,最新存档版本将成为新存储桶中的实时版本。我认为您是正确的,这是唯一的方法。。。糟糕的是,没有一种方法可以改变文件的元生成以使其恢复活动状态。即使每x个文件的成本与数据传输的成本相同。
$ 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