MultipleFileDownload 有类似getSubTransfers 的函数吗? AWS Java 开发工具包

Is there a similar function like getSubTransfers for MultipleFileDownload? AWS Java SDK

我知道 MultipleFileUpload 有一个名为 getSubTransfers 的函数,我可以使用它来检索正在上传到 AWS S3 存储桶的文件的路径。我进行了研究,没有发现与 MultipleFileDownload 类似的东西。这是我用于上传的代码。

MultipleFileUpload upload = transferManager.uploadDirectory(bucket, cloudDir, localFolder, true);
Collection<? extends Upload> uploads = new ArrayList<Upload>();
uploads = upload.getSubTransfers();
for (Upload u : uploads) 
{
    System.out.println(u.getDescription());
}

这是我从 S3 下载目录的代码:

MultipleFileDownload download = transferManager.downloadDirectory(bucket, cloudDir + "/", localFolder);

我正在 java 中编写一个客户端应用程序,它将打印出正在下载到控制台的当前文件的路径。感谢任何有关如何打印当前正在下载的文件的名称的帮助。

很遗憾,目前似乎不支持此功能。

有一个 github 请求此功能 - https://github.com/aws/aws-sdk-java/issues/785

好消息是它正在开发中 - https://github.com/aws/aws-sdk-java-v2/issues/37

我能想到的使用 SDK 的最接近的解决方法是使用 Transfer.getProgress(),这将为您提供一个 TransferProgress 对象。它有一些属性,比如 percentTransfered 和其他一些...... https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/TransferProgress.html