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

Java AWS SDK v1 - S3 API - Not able to upload multiple files parallely using multipart api

我有 5 个文件,每个文件大小为 200 MB。我正在使用 Executor 服务并行上传这些文件,并且 将 TransferManager 与 multipart threashold = 50 MB 一起使用,并通过使用阻塞方法调用 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 控制台中打开存储桶时,那里什么也没有。

任何人都可以建议这里可能发生什么或如何进一步调试它吗?

代码工作正常我正在查看错误的存储桶。