Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS SDK Java TransferManager限制下载大小_Java_Amazon S3_Aws Sdk_Awss3transfermanager - Fatal编程技术网

AWS SDK Java TransferManager限制下载大小

AWS SDK Java TransferManager限制下载大小,java,amazon-s3,aws-sdk,awss3transfermanager,Java,Amazon S3,Aws Sdk,Awss3transfermanager,我目前正在通过以下代码段将名称与前缀匹配的S3文件夹下载到本地TMP_文件夹: TransferManager transferManager = TransferManagerBuilder.standard().withS3Client(s3Instance).build(); MultipleFileDownload multipleFileDownload = transferManager.downloadDirectory(S3_BUCKET, "prefix_",

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

    TransferManager transferManager = TransferManagerBuilder.standard().withS3Client(s3Instance).build();
    MultipleFileDownload multipleFileDownload = transferManager.downloadDirectory(S3_BUCKET, "prefix_", TMP_FOLDER);
    multipleFileDownload.waitForCompletion();
    transferManager.shutdownNow();
问题是,我的机器磁盘空间不足,因为我试图下载的文件夹很大(它们包含许多微小的文本文件,但总的来说,每个文件夹的大小高达几GiB)

所以,我的问题是,有没有办法限制
TransferManager
MultipleFileDownload
只下载特定大小的数据

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


(当然,我假设没有一个文本文件本身会比设定的限制更大)

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