在 Linux 中将 200GB tar.gz 文件上传到 S3 的最佳方法是什么?经过研究,我发现 S3 的对象限制已增加到 5TB,并且了解到多部分上传机制可以加快上传速度。我发现了一个 python 脚本 boto 可能对此有所帮助。有人可以更详细地解释一下这个话题吗?
答案1
不要上传,发布即可。 http://aws.amazon.com/importexport/
亚马逊提供一种服务,您可以向他们发送便携式媒体,然后他们通过其快速主干网为您上传数据。
如果你真的想自己做,那就拿一份S3命令并且做s3cmd sync
。
“永远不要低估一辆装满磁带的旅行车在高速公路上疾驰的带宽。”——安德鲁·S·塔南鲍姆
编辑:如果您真的希望能够分块文件上传,我建议您执行以下操作。
- 获取具有足够临时存储的 AWS EC2 实例来保存您要上传的文件。
- 使用 GNU Split 将文件分成更小的块。
- 将块上传到您的临时 EC2 实例。
- 使用分割选项重新组装块以进行重新组装。
- 将块从 EC2 上传到 S3(速度极快!)
- 关闭 EC2 实例,但要将其放在方便的地方。
答案2
谢谢你的回复和选择,汤姆。我能够使用多部分上传将 20GB 上传到 s3。我需要 python 2.5> + boto 库 + s3_mulitpart python 脚本来进行上传。我的参考资料在哪里
- http://code.google.com/p/boto/- boto(使用 2.1.1)
- http://www.elastician.com/2010/12/s3-multipart-upload-in-boto.html:使用 boto 进行多部分上传。
- http://bcbio.wordpress.com/2011/04/10/parallel-upload-to-amazon-s3-with-python-boto-and-multiprocessing/:并行上传到Amazon S3脚本
希望这些有用。
普雷姆
答案3
将 tar.gz 文件拆分成更小的块并跟踪其本地和远程 MD5 总和。这样,如果出现问题,您只需重新上传较小的部分即可。