aws s3>是" aws s3 cp"用多线程实现的命令?

时间:2016-04-15 12:28:37

标签: aws-sdk aws-cli

我是使用aws s3客户端的新手。我尝试使用" aws s3 cp"命令将批量文件从s3下载到本地文件系统,速度非常快。但是我尝试只使用amazon java sdk API在单个线程循环中读取批处理文件的所有内容,令人惊讶的是比给定的" aws s3 cp"命令:<

任何人都知道是什么原因?我怀疑那是" aws s3 cp"是多线程的

1 个答案:

答案 0 :(得分:2)

如果查看transferconfig.py的来源,则表示默认值为:

DEFAULTS = {
    'multipart_threshold': 8 * (1024 ** 2),
    'multipart_chunksize': 8 * (1024 ** 2),
    'max_concurrent_requests': 10,
    'max_queue_size': 1000,
}

这意味着它可以同时执行10个请求,并且当文件大于8MB时它也会将传输分块为8MB

这是also documented on the s3 cli config文档。

  

这些是您可以为S3设置的配置值:
  max_concurrent_requests - 最大并发请求数   max_queue_size - 任务队列中的最大任务数。 multipart_threshold - CLI用于单个文件的多部分传输的大小阈值   multipart_chunksize - 使用多部分传输时,这是CLI用于单个文件的多部分传输的块大小。

你可以调低它,看它是否与你的简单方法相比:

aws configure set default.s3.max_concurrent_requests 1

不要忘记之后重新调整它,否则您的AWS表现会很糟糕。

相关问题