6

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

谢谢。詹姆士

4

7 回答 7

12

我使用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 哈希值,以便在以后重新组合时验证存档的完整性。

于 2013-03-08T06:33:26.360 回答
7

官方AWS 命令​​行界面支持分段上传。(它在引擎盖下使用了boto后继botocore):

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

除了所有 AWS API 的统一方法之外,它还添加了一组新的简单文件命令,用于在 Amazon S3 之间进行高效的文件传输,其特征类似于众所周知的 Unix 命令,例如:

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

所以cp对于手头的用例来说就足够了,但也一定要检查一下sync,它对于许多经常遇到的场景特别强大(并且有点暗示cp取决于参数)。

于 2014-01-30T22:41:37.747 回答
5

boto 库包含一个名为的 s3 命​​令行工具,s3put可以处理大文件的分段上传。

于 2013-03-09T18:38:00.453 回答
1

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

于 2013-07-17T06:59:22.237 回答
1

我个人创建了具有简单功能的 python 文件s3upload.py,以使用 boto 和分段上传来上传大文件。

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

python s3upload.py bucketname extremely_large_file.txt

更多细节和功能代码可以在这里找到。

于 2015-08-17T02:10:21.910 回答
0

您可以将S3 存储桶挂载到文件系统

于 2013-03-08T06:12:34.323 回答
0

我刚开始使用s4cmd,它处理了一个 50gb 的文件就好了

于 2015-11-24T01:42:37.280 回答