【问题标题】:AWS SDK Java TransferManager limit download sizeAWS SDK Java TransferManager 限制下载大小
【发布时间】:2019-04-07 08:47:32
【问题描述】:

我目前正在通过以下代码 sn-p 将名称与 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)。

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

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

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

【问题讨论】:

    标签: java amazon-s3 aws-sdk awss3transfermanager


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多