微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java AWS SDK v1-S3 API-无法使用分段API并行上传多个文件

如何解决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 举报,一经查实,本站将立刻删除。