【问题标题】:Amazon S3 multipart uploadAmazon S3 分段上传
【发布时间】:2017-08-23 04:25:21
【问题描述】:

我正在尝试使用 Java 中的分段上传低级 API 方法将 .bak 文件(24gb)上传到亚马逊 s3。我能够成功写入文件,但花费的时间大约是 7-8 小时。我想知道上传这么大文件的平均/理想时间是多少,是预期的还是可以改进的?如果有改进的余地,可以采取什么方法?

【问题讨论】:

  • 这可能更多地与您的服务器 isp 的上传速度有关。你检查过那是什么吗?
  • @JoeLissner 是的,它是 13mbs
  • 假设它始终是恒定的 13mbs 并且从未中断,则需要 4-5 小时。我的猜测是它并不总是将全部 13mbs 专用于文件上传。
  • 你能发布你的代码吗?

标签: amazon-web-services file-upload amazon-s3


【解决方案1】:

如果您使用的是 Transfer Manager 的默认设置,那么对于分段上传,DEFAULT_MINIMUM_UPLOAD_PART_SIZE 为 5MB,对于 24GB 文件来说太低了。这实质上意味着您最终会将数千个小部分上传到 s3。由于每个部分都是由不同的工作线程上传的,因此您的应用程序将在网络通信上花费太多时间。这不会为您提供最佳的上传速度。

您必须将最小上传部分大小增加到 100 MB 到 500 MB 之间。使用此设置:setMinimumUploadPartSize

设置 MinimumUploadPartSize 的官方文档:

减小最小部分大小会导致多部分上传被拆分为更多的较小部分。将此值设置得太低会对传输速度产生负面影响,因为它会导致每个部分的额外延迟和网络通信。

如果您当前使用默认设置,我确信通过调整此设置您会看到上传吞吐量的提高。让我知道这是否会提高吞吐量。

上传愉快!!!

【讨论】:

    猜你喜欢
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2015-06-25
    • 2012-11-01
    • 1970-01-01
    • 2011-07-21
    • 2023-03-14
    相关资源
    最近更新 更多