使用Java AWS SDK将文件夹上传到S3存储桶

时间:2019-11-21 08:56:53

标签: amazon-web-services amazon-s3 aws-java-sdk

我正在尝试将整个文件夹上传到AWS S3存储桶。我可以成功上传单个文件,但找不到上载整个文件夹的方法。 AWS CLI有一个名为sync的选项,Java SDK中是否提供等效方法?

用于上传单个对象的示例代码如下(仅一部分)

final PutObjectRequest dashboardUploadRequest = PutObjectRequest.builder()
                        .bucket(aws.getApplihealthReportBucket())
                        .key(projectName + "/"+ executionConfig.getTestType() +"/" + aws.getS3Folder() + "/index.html").build();

S3Client s3 = S3Client.builder().credentialsProvider(credentialsProvider).build()
s3.putObject(dashboardUploadRequest, Paths.get(resultsDirectory + "/extent.html"));

2 个答案:

答案 0 :(得分:1)

无法将文件夹直接上传到s3。仅先存档并逐文件上传。

或使用CLI https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

答案 1 :(得分:1)

Java SDK中的TransferManager API提供了从upload a directory到S3的方法。