AWS S3 SDK - 如何设置线程池大小?

时间:2018-03-09 01:31:59

标签: amazon-web-services amazon-s3 aws-java-sdk

我尝试为S3分段上传设置线程池大小,以控制正在进行的并行上传的数量。

根据此AWS博客页面https://aws.amazon.com/blogs/developer/parallelizing-large-uploads-for-speed-and-reliability/我需要将Executors.newFixedThreadPool(n)传递给TransferManager,但我无法找到对TransferManagerBuilder执行相同操作的方法。

我们TransferManagerBuilder.standard().withExecutorFactory()接受ExecutyorFactory,但没有实施。

如何使用TransferManagerBuilder指定线程池大小?

1 个答案:

答案 0 :(得分:1)

JavaDocGitHub表示有一个TransferManagerBuilder#withExecutorFactory方法带有ExecutorFactory,其实现可以在构建器上设置它。

确保在构建器上调用build方法,该方法应返回TransferManager的实例。

final TransferManager tm = TransferManagerBuilder
        .standard()
        .withExecutorFactory(() -> Executors.newFixedThreadPool(numThreads))
        .build();