我们如何使用Java SDK从S3存储桶下载没有文件夹的多个文件

时间:2017-10-13 00:27:20

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

有没有办法可以使用java sdk从s3下载多个文件。我不想下载子文件,只能下载指定文件夹中的文件。

假设我有一个水桶

BucketName: 
       Mlearn 

Keys : 
       staticConfig/cities.csv 
       staticConfig/ABC.csv 
       staticConfig/pwd.csv 
       staticConfig/Check/xyz.csv 
       staticConfig/Check/pqr.csv 

我只需要下载cities.csv,ABC.csv和pwd.csv,不应该在子文件夹中下载Check。

我尝试使用下面的api

TransferManager tx=new TransferManager(getS3Client());

MultipleFileDownload multi=tx.downloadDirectory("Mlearn", "staticConfig", "D:/temp");

这会下载整个子文件夹。

有人请指教。

虽然我可以逐个列出并下载文件,但效率并不高。

当我使用TransFerManager计算下载逐个文件v / s下载时,TXManager所用的时间为1.6秒,而逐个为2.9秒。

因此想要逐个限制使用手动下载文件。

1 个答案:

答案 0 :(得分:1)

TransferManager不直接支持您想要的内容。在逐个下载时,您可以并行运行所有下载(例如,使用ExecutorService)以减少延迟。