【问题标题】:S3: how to upload large number of filesS3:如何上传大量文件
【发布时间】:2018-11-16 19:21:13
【问题描述】:

我必须上传 100k 个小文件(总大小:200MB)。

我尝试通过网络浏览器(AWS 控制台)进行此操作,但在前 15 分钟内,我只上传了 2MB。

将 100k 小文件上传到 S3 的最快方法是什么?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    我有 99,561 个小文件,总大小为 466MB,并尝试从我的m4.16xlarge(64 CPU)EC2 实例尽快将这些文件上传到 S3。

    • aws s3 sync 花了 10 分钟
    • Cyber​​Duck 承诺需要 17 分钟,但挂了。我在 45 分钟后终止了它。
    • CloudBerry 乍一看似乎只是windows,所以我没有测试。
    • s3-parallel-put --put=stupid 耗时 9 分钟
    • s3-parallel-put --put=stupid --processes=64 花了 1 分钟
    • s3-parallel-put --put=stupid --processes=256 耗时 19 秒
    • s3-parallel-put --put=stupid --processes=512 耗时 18 秒

    我将继续使用s3-parallel-put 解决方案。

    【讨论】:

    • 用这个上传到数字海洋空间./s3-parallel-put --bucket=ililililili --bucket_region=nyc3.digitaloceanspaces.com --grant=public-read --host=nyc3.digitaloceanspaces.com --prefix=test/upload/ --put=stupid --processes=30 --content-type=guess --log-filename=./s3pp.log ./uploads/
    【解决方案2】:

    安装the AWS CLI tool,然后使用aws s3 cp 命令或aws s3 sync 命令将所有文件上传到S3。

    您也可以考虑使用第三方 S3 客户端,例如 CyberduckCloudBerry Explorer

    【讨论】:

    • 我使用aws s3 cp 和以下命令:aws s3 cp myDir s3://mybucket/ --recursive。更多详情:link。我花了大约 3 分钟上传 100k 个文件,总大小为 200MB
    • 我已经使用这个 boto3 函数 boto3.s3.transfer 将一些 db 备份文件上传(多部分传输)到 s3,但在我的情况下,我必须先压缩文件。希望这可能会有所帮助。
    猜你喜欢
    • 2018-07-13
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2018-10-10
    • 1970-01-01
    相关资源
    最近更新 更多