【问题标题】:Upload a folder to an S3 bucket using java aws sdk使用 java aws sdk 将文件夹上传到 S3 存储桶
【发布时间】:2020-03-17 03:27:57
【问题描述】:

我正在尝试将整个文件夹上传到 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"));

【问题讨论】:

  • aws s3 sync 命令是一个 Python 程序,它遍历每个文件并单独复制每个文件。没有用于在一次调用中复制多个文件的 AWS API。

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


【解决方案1】:

无法将文件夹直接上传到 s3。只能逐个文件搜索和上传。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 请记住,这仅适用于版本 1,不适用于 2。
    猜你喜欢
    • 2017-09-24
    • 2012-05-28
    • 2018-04-25
    • 2021-05-05
    • 1970-01-01
    • 2019-04-28
    • 2018-02-16
    • 2021-02-07
    • 2014-09-11
    相关资源
    最近更新 更多