你在linux中使用什么amazon s3客户端进行分段上传功能?我上传了6GB的zip文件,由于最大限制为5GB,因此无法进行s3curl。
感谢。 詹姆斯
答案 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命令,例如:
所以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)