AWS Java SDK 传输管理器仅下载文件夹结构
AWS Java SDK Transfer manager downloads only folder structure
当我尝试使用 KeyPrefix 从 S3 下载特定文件夹的所有文件时,它只下载目录结构而不是其中的文件。
下面是代码
TransferManager xfer_mgr = TransferManagerBuilder.standard().build();
File a = new File("./");
try {
GetObjectRequest gor = new GetObjectRequest(bucketName, "folder3");
MultipleFileDownload xfer = xfer_mgr.downloadDirectory(
bucketName, null, a);
} catch (AmazonServiceException e) {
System.err.println(e.getErrorMessage());
System.exit(1);
}
System.out.println("done...............");
xfer_mgr.shutdownNow();
我是否遗漏了代码中的任何内容,或者必须添加任何权限?
任何建议都会很有帮助。
解决了。
传输管理器首先下载文件夹结构,然后下载里面的所有文件。
所以解决方案是:
将 MultipleFileDownload 转换为 'waitForCompletion'.
添加一行
xfer.waitForCompletion() 解决了问题。
当我尝试使用 KeyPrefix 从 S3 下载特定文件夹的所有文件时,它只下载目录结构而不是其中的文件。
下面是代码 TransferManager xfer_mgr = TransferManagerBuilder.standard().build();
File a = new File("./");
try {
GetObjectRequest gor = new GetObjectRequest(bucketName, "folder3");
MultipleFileDownload xfer = xfer_mgr.downloadDirectory(
bucketName, null, a);
} catch (AmazonServiceException e) {
System.err.println(e.getErrorMessage());
System.exit(1);
}
System.out.println("done...............");
xfer_mgr.shutdownNow();
我是否遗漏了代码中的任何内容,或者必须添加任何权限? 任何建议都会很有帮助。
解决了。 传输管理器首先下载文件夹结构,然后下载里面的所有文件。
所以解决方案是: 将 MultipleFileDownload 转换为 'waitForCompletion'.
添加一行 xfer.waitForCompletion() 解决了问题。