在向 Amazon S3 上传大文件时,如何优化性能?

1 分钟阅读
0

我想向 Amazon Simple Storage Service(Amazon S3)上传大文件(1GB 或更大)。如何优化这种上传的性能?

简短描述

当您向 Amazon S3 上传大文件时,最好利用分段上传。如果您使用的是 AWS Command Line Interface(AWS CLI),则当对象为大型对象时,所有高级 aws s3 命令会自动执行分段上传。这些高级命令包括 aws s3 cpaws s3 sync

要提高上传性能和优化分段上传,请考虑以下选项:

  • 如果您使用的是 AWS CLI,请自定义上传配置。
  • 启用 Amazon S3 Transfer Acceleration。

解决方法

如果您使用的是 AWS CLI,请自定义上传配置

您可以自定义 Amazon S3 的以下 AWS CLI 配置

  • **max_concurrent_requests:**此值用于设置一次可以发送至 Amazon S3 的请求数量。原定设置值为 10。
    **注意:**运行的线程越多,消耗的计算机资源也越多。您必须确保您的计算机拥有足够的资源来支持您想要的最大并发请求数。
  • **max_queue_size:**此值用于设置队列中的最大任务数量。原定设置值为 1000。
  • **multipart_threshold:**此值用于为单个文件的分段上传设置大小阈值。原定设置值为 8 MB。
  • **multipart_chunksize:**此值设置 AWS CLI 在单个文件的分段上传中上传的每个段的大小。通过此设置,您可以将较大的文件(例如 300 MB)分解为较小的段,以加快上传速度。原定设置值为 8 MB。
    **注意:**分段上传要求单个文件上传时所分的不同段不超过 10000 个。您必须确保您所设置的区块大小平衡了段文件大小和段的数量。
  • **max_bandwidth:**此值用于设置将数据上传到 Amazon S3 的最大带宽。没有原定设置值。

**注意:**如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

启用 Amazon S3 Transfer Acceleration

Amazon S3 Transfer Acceleration 可以在您的客户端与 Amazon S3 之间提供快速、安全的远距离传输。Transfer Acceleration 使用 Amazon CloudFront 遍布全球的边缘站点。

Transfer Acceleration 会产生额外费用,因此请务必查看定价。要确定 Transfer Acceleration 是否可提高使用案例的传输速度,请查看 Amazon S3 Transfer Acceleration 速度比较工具。

**注意:**Transfer Acceleration 不支持使用 CopyObject 执行跨区域复制。


相关视频

AWS 官方
AWS 官方已更新 2 年前