2012-10-19 60 views
6

我有一个27GB文件,我正尝试从AWS Linux EC2迁移到S3。我已经尝试了'S3put'命令和'S3cmd put'命令。两者都使用测试文件。既不适用于大文件。没有错误,命令立即返回,但没有任何反应。从ec2到s3的大文件

s3cmd put bigfile.tsv s3://bucket/bigfile.tsv 
+0

我认为新的S3CMD工具支持多部分自动上传,至少它在Ubuntu中提供它的版本。 – Maziyar

+0

看到http://stackoverflow.com/questions/5774808/s3cmd-failed-too-many-times/22107084#22107084, 我建议: http://stackoverflow.com/a/ 22107084/116293 – user116293

+0

有时需要root权限'sudo s3cmd put ...' – tarikakyol

回答

5

虽然你可以上传对象与尺寸高达5TB到S3,S3拥有5GB的大小限制为单个PUT操作。

为了加载大于5GB的文件(甚至是大于100MB的文件),您将要使用S3的分段上传功能。

http://docs.amazonwebservices.com/AmazonS3/latest/dev/UploadingObjects.html

http://aws.typepad.com/aws/2010/11/amazon-s3-multipart-upload.html

(忽略在上述博客帖子5GB对象限制的过时的描述。该电流限制是5TB。)

在boto库用于Python支持分段上传,最新的boto软件包含一个“s3multiput”命令行工具,可以为您处理复杂问题,甚至可以并行处理部分上传。

https://github.com/boto/boto

+0

啊,这看起来就像我即将要面临的下一个问题。我会重新生成flie,看看我如何使用s3multiput。谢谢。 – waigani

0

该文件不存在,卫生署。我意识到这一点通过添加-v标签运行在详细模式下S3命令后:

s3cmd put -v bigfile.tsv s3://bucket/bigfile.tsv 
0

s3cmd 1.1.0版本支持多部分上传的“放”命令的一部分,但其仍处于测试阶段(目前)