Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud storage 从Google云存储大容量恢复文件_Google Cloud Storage_Cloud Storage - Fatal编程技术网

Google cloud storage 从Google云存储大容量恢复文件

Google cloud storage 从Google云存储大容量恢复文件,google-cloud-storage,cloud-storage,Google Cloud Storage,Cloud Storage,意外地在错误的bucket上运行delete命令,对象版本控制被打开,但我真的不知道应该采取什么步骤来恢复文件,或者更重要的是,如何批量执行,因为我已经删除了数百个文件 谢谢你的帮助 要恢复数百个对象,您可以执行以下简单操作: gsutil cp -AR gs://my-bucket gs://my-bucket 这将使用仅复制元数据的方式将所有对象(包括已删除的对象)复制到实时生成中,即不需要复制实际字节。注意事项: 它将保留已删除的代,因此会占用额外的存储空间 如果您的bucket不为空,

意外地在错误的bucket上运行delete命令,对象版本控制被打开,但我真的不知道应该采取什么步骤来恢复文件,或者更重要的是,如何批量执行,因为我已经删除了数百个文件


谢谢你的帮助

要恢复数百个对象,您可以执行以下简单操作:

gsutil cp -AR gs://my-bucket gs://my-bucket
这将使用仅复制元数据的方式将所有对象(包括已删除的对象)复制到实时生成中,即不需要复制实际字节。注意事项:

  • 它将保留已删除的代,因此会占用额外的存储空间

  • 如果您的bucket不为空,此命令将重新复制所有活动对象(最终每个对象都会有一个额外的存档版本,这也会导致额外的存储成本)

  • 如果您想要恢复大量对象,这个简单化的脚本将运行得太慢——您可能需要并行化各个gsutil cp操作。在这种情况下,您不能使用gsutil-m选项,因为gsutil阻止了这一点,以便保留生成顺序(例如,如果有多个具有相同名称的对象的生成,并行复制它们将导致不可预测的生成的实时生成)。如果每一代只有一代,您可以通过执行以下操作来并行复制:

    gsutil ls-a gs://my bucket/**sed's/\(.\)\(\[0-9]\)/gsutil cp\1\2\1\&/'>gsutil\u script.sh


  • 这将生成所有对象(包括已删除对象)的列表,并将其转换为一系列gsutil cp命令,以将这些对象(按特定于生成的名称)并行复制回实时生成。如果列表很长,您会希望将其分成多个部分,这样您就不会(例如)尝试使用100k个进程来进行并行复制(这会使您的机器过载)。

    感谢Mike的深入回答,希望文档能够做到这一点!实际上,当我尝试使用you命令进行并行处理时,`s'命令的RHS错误出现了
    sed:-e expression#1,char 35:invalid reference\2。很抱歉,命令中的反斜杠字符被github格式吞没了,因此我不得不对其进行转义。我更新了命令以修复此问题-请重试。cp-AR命令的另一个问题是,它会将所有版本化对象放在名为
    my bucket
    的“文件夹”中,因此您会将所有对象放在
    gs://my bucket/my bucket