如何解决Java AWS SDK v1-S3 API-无法使用分段API并行上传多个文件
我有5个文件,每个文件大小为200 MB。我正在使用Executor服务并行上传这些文件,并且 使用具有多部分阈值= 50 MB的TransferManager并通过使用对upload.waitForCompletion()的阻塞方法调用来等待上载完成(表示当前线程挂起,直到 上传成功或抛出错误)。
请找到以下代码摘录:
private static final ExecutorService executor = Executors.newFixedThreadPool(10);
executor.execute(() -> upload("bucketName",new File(fullFilePath)));
public static void upload(final String bucketName,final File filePath) {
AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard().withCredentials(new AWsstaticCredentialsProvider(getCredentals()))
.withRegion(Regions.DEFAULT_REGION).build();
TransferManager tm = TransferManagerBuilder.standard().withS3Client(amazonS3)
.withMultipartUploadThreshold((long) (50 * 1024 * 1025)).build();
final String fileName = filePath.getName();
try {
Upload upload = tm.upload(s3Bucket,fileName,filePath);
upload.waitForCompletion();
log.info("Successfully uploaded file = " + fileName);
} catch (Exception e) {
log.info("Upload Failed for file = " + fileName);
log.error(e);
}
}
直到所有5个文件的“成功上传”都没有退出主线程。 现在,该程序不会引发任何错误,并且可以成功显示所有5个文件,但是当我在aws控制台中打开存储桶时,什么也没有。
任何人都可以建议这里发生了什么或如何对其进行进一步调试吗?
解决方法
代码运行正常,我正在寻找错误的存储桶。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。