高效同步大对象到S3

高效同步大对象到S3

我需要将大约 30GB 的 git 存储库同步到 S3。这些存储库可能包含一些非常大的包文件,大约 2GB。

我知道 S3 最近增加了对大型对象的支持,并且有新的 API 允许将对象作为多个并行块上传。是否有一个适用于 Linux 的良好命令行工具可以让我以类似于 s3sync 的方式高效地将大型对象与 S3 同步?

答案1

如果这些功能是最近添加的,那么它可能还没有出现在用户空间工具中……但无论如何,我会冒险推荐 jets3t。我一直在使用它的同步工具将大约 96gb 的文件同步到 amazon s3。

但是您需要注意,您无法就地修改或替换 s3 中存储的数据块,如果其中一个 2gb 文件发生变化,您将不得不重新上传它。

确实存在一些工具可以将文件分解为“块大小为 X 的块”,这样修改文件并重新上传整个文件的成本就会降低。但这也取决于块块算法以及文件的修改方式……

总结;

  1. 如果是静态的并且不会改变,请使用类似于 jets3t 同步的方法
  2. 如果它会随着时间的推移而改变,请考虑使用 s3fs 或其他备份系统(如 brackup),它会将大文件分成块并存储在 s3 上,以降低修改文件的成本。
  3. 采用某种形式的增量/增量备份,除了文件的原始副本之外,还将更改的增量存储到 s3 上。

相关内容