gpt4 book ai didi

google-cloud-storage - 从 Google Cloud Storage 批量恢复文件

转载 作者:行者123 更新时间:2023-12-03 23:18:29 25 4
gpt4 key购买 nike

不小心在错误的存储桶上运行删除命令,对象版本控制已打开,但我真的不明白我应该采取哪些步骤来恢复文件,或者更重要的是,如何批量执行,因为我已经删除了数百个其中。

将不胜感激任何帮助。

最佳答案

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

gsutil cp -AR gs://my-bucket gs://my-bucket

这将使用仅元数据复制将所有对象(包括已删除的对象)复制到实时生成,即不需要复制实际字节。注意事项:
  • 它将保留已删除的代,因此会花费您额外的存储空间。
  • 如果您的存储桶不为空,则此命令将重新复制所有事件对象(最终每个对象都有一个额外的存档版本,也会花费您额外的存储空间)。
  • 如果您想恢复大量对象,这个简单的脚本会运行得太慢 - 您需要并行化各个 gsutil cp 操作。在这种情况下,您不能使用 gsutil -m 选项,因为 gsutil 会阻止这种情况,以保留生成顺序(例如,如果有几代具有相同名称的对象,并行复制它们将最终以实时生成来自不可预测的一代)。如果您只有 1 代,您可以通过执行以下操作来并行复制:

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

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

    关于google-cloud-storage - 从 Google Cloud Storage 批量恢复文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43278683/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com