您在具有分段上传功能的 linux 中使用什么 amazon s3 客户端?我有 6GB 的 zip 文件要上传,由于最大限制仅为 5GB,因此无法使用 s3curl。
谢谢。詹姆士
您在具有分段上传功能的 linux 中使用什么 amazon s3 客户端?我有 6GB 的 zip 文件要上传,由于最大限制仅为 5GB,因此无法使用 s3curl。
谢谢。詹姆士
我使用S3 Tools,它会自动为所有 PUT 命令使用大于 15MB 的文件的分段上传功能:
默认情况下启用 Multipart,并针对大于 15MB 的文件启动。您可以使用 —multipart-chunk-size-mb=5 将此阈值设置为低至 5MB(亚马逊的限制)或 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 哈希值,以便在以后重新组合时验证存档的完整性。
官方AWS 命令行界面支持分段上传。(它在引擎盖下使用了boto后继botocore):
AWS 命令行界面 (CLI) 是用于管理您的 AWS 服务的统一工具。只需下载和配置一个工具,您就可以从命令行控制多个 AWS 服务并通过脚本自动化它们。
除了所有 AWS API 的统一方法之外,它还添加了一组新的简单文件命令,用于在 Amazon S3 之间进行高效的文件传输,其特征类似于众所周知的 Unix 命令,例如:
所以cp
对于手头的用例来说就足够了,但也一定要检查一下sync
,它对于许多经常遇到的场景特别强大(并且有点暗示cp
取决于参数)。
boto 库包含一个名为的 s3 命令行工具,s3put
可以处理大文件的分段上传。
您可以查看 FTP/Amazon S3/Glacier 客户端CrossFTP。
我个人创建了具有简单功能的 python 文件s3upload.py,以使用 boto 和分段上传来上传大文件。
现在每次我需要上传大文件时,我只需运行如下命令:
python s3upload.py bucketname extremely_large_file.txt
更多细节和功能代码可以在这里找到。
您可以将S3 存储桶挂载到文件系统。
我刚开始使用s4cmd,它处理了一个 50gb 的文件就好了