高效地将大对象同步到S3

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

我知道S3最近增加了对大型对象的支持,并且有了新的API,可以将对象作为几个并行块来上传。 是否有一个很好的Linux命令行工具,使我能够以类似于s3sync的方式高效地同步S3大对象?

如果最近添加了这些function,可能不会在用户的土地工具…但无论如何,我会走出去,并推荐jets3t。 我一直在使用它的同步工具来保持约96GB的文件同步到亚马逊S3。

不过,您需要注意的是,如果某个2GB文件中的某个内容发生更改,您将无法进行修改或replaces3中存储的某个数据块,您将不得不重新上传。

确实存在一些将文件分解为“块大小为X的块”的工具,这样在修改文件和重新上传整个文件方面成本较低。 但是,这也取决于如何块块algorithm以及如何修改文件也…

TL;博士;

  1. 如果是静态的并且不会改变,请使用类似jets3t的同步
  2. 如果它随着时间的推移而改变,可以考虑一些类似s3fs或者其他备份系统之一,比如说将大文件分割成多块来存储在s3上的括号,以降低修改文件的成本。
  3. 采用某种forms的增量/增量备份,除了文件的原始副本之外,还将更改的变化量存储在s3上。