【问题标题】:Set object metadata in AWS S3 Java SDK在 AWS S3 Java SDK 中设置对象元数据
【发布时间】:2020-11-12 14:53:52
【问题描述】:

使用适用于 Java 的 AWS 开发工具包版本 2,我正在尝试为我上传的对象设置 Content-Type 元数据。

我使用此代码上传图片:

S3Client s3Client = S3Client.builder().
                        region(MY_REGION).
                        credentialsProvider(MY_CREDENTIALS).
                        build();

Map<String, String> image_metadata = new HashMap<>();
image_metadata.put("Content-Type", "image/jpeg");

PutObjectRequest request = PutObjectRequest.builder().
                    bucket(MY_BUCKET).
                    key(remoteDir + remoteFileName).
                    acl(ObjectCannedACL.PUBLIC_READ).
                    storageClass(StorageClass.STANDARD).
                    metadata(image_metadata).
                    build();

如果我不设置元数据方法,对象内容类型将被 AWS 猜测,我发现每个图像都显示为“application/octet-stream”而不是“image/jpeg”。

但是当设置元数据方法时,对象出现了2个元数据:

Content-Type=application/octet-stream
x-amz-meta-content-type=image/jpeg

那么...我如何设置元数据以实现仅一种元数据?:

Content-Type=image/jpeg

谢谢!

【问题讨论】:

    标签: java amazon-s3 metadata aws-sdk


    【解决方案1】:

    看起来更简单:

    PutObjectRequest request = PutObjectRequest.builder().
                        bucket(MY_BUCKET).
                        key(remoteDir + remoteFileName).
                        acl(ObjectCannedACL.PUBLIC_READ).
                        storageClass(StorageClass.STANDARD).
                        contentType("image/jpeg").
                        build();
    

    【讨论】:

      猜你喜欢
      • 2017-06-29
      • 2019-11-18
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 2013-09-25
      • 2021-09-26
      相关资源
      最近更新 更多