【问题标题】:S3 SDK updating a single object when uploading instead of creating a new fileS3 SDK 在上传而不是创建新文件时更新单个对象
【发布时间】:2018-04-10 18:31:49
【问题描述】:

我正在尝试使用 Java SDK 将尽可能多的文件上传到 S3 存储桶。我这样做如下:

    @Override
public void upload() {
    PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET_NAME, ACCESS_KEY, new File('myFilePath'));
    getS3Client().putObject(putObjectRequest);
}

问题是它总是覆盖现有文件。因此,无论我将“myFilePath”参数更改为图像还是文本,它都不会创建新文件,而是更新现有文件。这不应该发生,因为这些是不同的文件,而不是相同的。

如何只创建一个文件而不更新现有文件?

【问题讨论】:

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


    【解决方案1】:

    PutObjectRequest 构造函数的第二个参数是存储新对象的键。您错误地为所有请求传递了相同的密钥 (ACCESS_KEY)。

    【讨论】:

      【解决方案2】:

      S3 键是对象的名称。它是 S3 中文件的完整路径 + 文件名。您正在使用 ACCESS_KEY ,它看起来像是您的 AWS 凭证的一部分。您不应该在该参数中传递 ACCESS_KEY,而应该传递对象键/文件名。

      【讨论】:

        猜你喜欢
        • 2015-02-02
        • 1970-01-01
        • 1970-01-01
        • 2017-04-12
        • 2015-07-26
        • 2019-03-12
        • 2017-04-23
        • 2018-10-25
        • 1970-01-01
        相关资源
        最近更新 更多