Я пытаюсь загрузить один каталог с S3, используя transferManager.downloadDirectory(). В этом каталоге у меня около 9000 небольших файлов.
Я установил 50 фиксированных пулов потоков, но не почувствовал, что производительность изменилась. Я думаю, это только для загрузки файла MultiPart.
Есть ли простой способ загрузить каталог параллельно?
TransferManagerBuilder transferManagerBuilder = TransferManagerBuilder.standard();
transferManagerBuilder.setS3Client(s3client);
transferManagerBuilder.setExecutorFactory(() -> Executors.newFixedThreadPool(50));
TransferManager transferManager = transferManagerBuilder.build();
File tempDir = tempDirPath.toFile();
MultipleFileDownload download = transferManager.downloadDirectory("REGRESSION_TEST", fromPath, tempDir);
try {
download.waitForCompletion();
} catch (AmazonClientException | InterruptedException e) {
logger.debug("failed to download S3 files", e);
return null;
}
С уважением,
Эрик Чжан