【问题标题】:Backing up Google Cloud Storage to another Bucket将 Google Cloud Storage 备份到另一个存储桶
【发布时间】:2015-05-07 03:20:04
【问题描述】:

我知道有 cronjob 可用于备份 google 数据存储区,但是否有任何简单的方法可以创建 cronjob 以将 Google Cloud Storage 的每日备份到另一个 Cloud Storage 存储桶?

我知道我可以使用这样的东西:

gsutil cp -D -R gs://<bucket>/* gs://<backup>/folder

或者我已经准备好关于Object Versioning 的内容,但不确定这是否与我想要做的事情有关。

但我想在 cronjob 中使用 php appengine 而不是在计算引擎中执行此操作。

我知道我可以像这样创建对象:(但有没有办法轻松迁移和复制数据?)

$document_data = "123456789";
$object_url = "gs://<bucket>/file.ext";
$options = stream_context_create(['gs'=>['acl'=>'private']]);
$my_file = fopen($object_url, 'w', false, $options);
fwrite($my_file, $document_data);
fclose($my_file);

【问题讨论】:

  • 你看过gsutil rsync吗?
  • 我不确定我是否想这样做。我宁愿每天备份。 @tx802

标签: php google-app-engine google-cloud-storage


【解决方案1】:

有点晚了,但是GCS Transfer 正是您要找的。​​p>

来自文档:

将数据从 Amazon Simple Storage 传输到您的 Cloud Storage 存储桶 服务 (S3)、HTTP/HTTPS 服务器或其他存储桶。你可以安排 一次性或每日传输,您可以根据名称过滤文件 前缀和更改时间。

【讨论】:

  • 我希望 OP 回来并将其标记为最佳答案。
【解决方案2】:

没有像数据存储的备份/恢复工具这样的等效自动化 GCS 工具。正如您所指出的,在 GCE 实例上运行的 cronjob 是完成此类任务的最简单方法。

对象版本控制可能适合您的需求,具体取决于您想要备份的原因。对象版本控制通过保留对象的多个副本来工作,这样每次您覆盖或删除一个对象时,它的先前状态都会作为具有相同名称但不同“世代”编号的对象保持不变。您还可以将 Google Cloud Storage 配置为定期删除超过一定时间的世代或已经存在一定数量的后代。

如果您最担心的是意外覆盖重要数据,那可能没问题。或者,如果您担心不小心删除存储桶中的所有对象(包括旧代对象),也可能会出现问题。或者,如果您需要能够将存储桶重置为特定日期的状态,则可能不太好。

如果对象版本控制对您不起作用,并且您不想设置运行 gsutil 的 cronjob,并且您想使用应用程序引擎,那么是的,您必须编写一个遍历所有内容的程序您存储桶中的对象并将它们复制到另一个存储桶。

【讨论】:

  • 当您说“设置运行 gsutil 的 cronjob”时,您的意思是,设置一个运行脚本的 cronjob,该脚本调用运行 gsutil 的计算引擎对吗?我没有任何直接运行 gsutil 的 cronjob 函数。
  • 可以,但我的意思是在 GCE 主机本身上设置一个 crontab 条目,指定确切的 gsutil 行。
猜你喜欢
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 2015-10-16
  • 2020-01-31
  • 2017-11-29
  • 1970-01-01
  • 2020-05-05
  • 2015-07-14
相关资源
最近更新 更多