适用于Linux的AWS S3 Client,具有分段上传功能

时间:2013-03-08 06:03:11

标签: amazon-web-services amazon-s3

你在linux中使用什么amazon s3客户端进行分段上传功能?我上传了6GB的zip文件,由于最大限制为5GB,因此无法进行s3curl。

感谢。 詹姆斯

6 个答案:

答案 0 :(得分:12)

我使用S3 Tools,对于所有PUT命令,它会自动为大于15MB的文件使用分段上传功能:

  

默认情况下启用Multipart,并为大于的文件启动   15MB。您可以将此阈值设置为低至5MB(亚马逊的限制)   -multipart-chunk-size-mb = 5或5到5120 MB之间的任何其他值

安装和配置后,只需发出以下命令:

~$ s3cmd put largefile.zip s3://bucketname/largefile.zip

或者,您可以在zip文件的命令行中使用split

split -b1024m largefile.zip largefile.zip-

稍后在您的文件系统上使用以下方法重新组合:

cat largefile.zip-* > largefile.zip

如果选择第二个选项,您可能希望在上传之前存储文件的MD5哈希值,以便在以后重新组合时验证存档的完整性。

答案 1 :(得分:7)

官方AWS Command Line Interface支持多部分上传。 (它使用了引擎盖下的boto后继者botocore

  

AWS命令行界面(CLI)是用于管理AWS服务的统一工具。只需一个下载和配置工具,您就可以从命令行控制多个AWS服务,并通过脚本自动执行这些服务。

除了对所有AWS API的统一方法之外,它还添加了一组新的简单file commands,用于与Amazon S3进行有效的文件传输,其特性与井类似已知的Unix命令,例如:

  • ls - 列出前缀或所有S3存储桶下的S3对象和公共前缀。
  • cp - 将本地文件或S3对象本地或在S3中复制到另一个位置。
  • sync - Syncs目录和S3前缀。
  • ...

所以cp对于手头的用例就足够了,但是一定要查看sync,它对于许多经常遇到的场景特别有用(并且有点暗示{{1}取决于参数)。

答案 2 :(得分:5)

boto library包含一个名为s3put的s3命令行工具,可以处理大型文件的多部分上传。

答案 3 :(得分:1)

您可以查看FTP / Amazon S3 / Glacier客户端CrossFTP

答案 4 :(得分:1)

我个人创建了python文件 s3upload.py ,其功能很简单,可以使用boto和multipart上传来上传大文件。

现在每次我需要上传大文件时,我只需运行如下命令:

python s3upload.py bucketname extremely_large_file.txt

可以找到更多详细信息和功能代码here

答案 5 :(得分:0)

您可以装载S3 bucket to the filesystem