将 200GB 的文件上传到 S3

将 200GB 的文件上传到 S3

在 Linux 中将 200GB tar.gz 文件上传到 S3 的最佳方法是什么?经过研究,我发现 S3 的对象限制已增加到 5TB,并且了解到多部分上传机制可以加快上传速度。我发现了一个 python 脚本 boto 可能对此有所帮助。有人可以更详细地解释一下这个话题吗?

答案1

不要上传,发布即可。 http://aws.amazon.com/importexport/

亚马逊提供一种服务,您可以向他们发送便携式媒体,然后他们通过其快速主干网为您上传数据。

如果你真的想自己做,那就拿一份S3命令并且做s3cmd sync

“永远不要低估一辆装满磁带的旅行车在高速公路上疾驰的带宽。”——安德鲁·S·塔南鲍姆

编辑:如果您真的希望能够分块文件上传,我建议您执行以下操作。

  1. 获取具有足够临时存储的 AWS EC2 实例来保存您要上传的文件。
  2. 使用 GNU Split 将文件分成更小的块。
  3. 将块上传到您的临时 EC2 实例。
  4. 使用分割选项重新组装块以进行重新组装。
  5. 将块从 EC2 上传到 S3(速度极快!)
  6. 关闭 EC2 实例,但要将其放在方便的地方。

答案2

谢谢你的回复和选择,汤姆。我能够使用多部分上传将 20GB 上传到 s3。我需要 python 2.5> + boto 库 + s3_mulitpart python 脚本来进行上传。我的参考资料在哪里

  1. http://code.google.com/p/boto/- boto(使用 2.1.1)
  2. http://www.elastician.com/2010/12/s3-multipart-upload-in-boto.html:使用 boto 进行多部分上传。
  3. http://bcbio.wordpress.com/2011/04/10/parallel-upload-to-amazon-s3-with-python-boto-and-multiprocessing/:并行上传到Amazon S3脚本

希望这些有用。

普雷姆

答案3

将 tar.gz 文件拆分成更小的块并跟踪其本地和远程 MD5 总和。这样,如果出现问题,您只需重新上传较小的部分即可。

相关内容