AWS开发工具包Java TransferManager限制下载大小

时间:2018-11-03 09:05:29

标签: java amazon-s3 aws-sdk awss3transfermanager

我目前正在通过以下代码段将名称与 prefix _ 匹配的S3文件夹下载到本地 TMP_FOLDER

    TransferManager transferManager = TransferManagerBuilder.standard().withS3Client(s3Instance).build();
    MultipleFileDownload multipleFileDownload = transferManager.downloadDirectory(S3_BUCKET, "prefix_", TMP_FOLDER);
    multipleFileDownload.waitForCompletion();
    transferManager.shutdownNow();

问题是我的计算机用完了磁盘空间,因为我要下载的那些文件夹很大(它们包含许多细小的文本文件,但总的来说,每个文件夹的大小最多为几个GiB)。 / p>

因此,我的问题是,是否有一种方法可以限制TransferManagerMultipleFileDownload仅下载特定大小的数据?

理想情况下,它应该一步一步下载小文件,检查下一个文件是否超过了预定义的限制,如果超过,则停止下载(这样可以避免最后有不完整的文件)

(当然,我认为所有文本文件本身都不会超过建立的限制)

1 个答案:

答案 0 :(得分:1)

您可以使用getProgress().getBytesTransferredMethod()来跟踪从S3上传/下载的文件大小。达到文件限制时,可以暂停/中止S3传输并稍后再恢复。以下链接可能对您有帮助: