有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

amazon s3在AWS s3 Java SDK中设置对象元数据

使用AWS SDK version 2 for Java,我试图为我上传的对象设置内容类型元数据

我在上传图像时使用了以下代码:

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会猜测对象内容类型,我发现每个图像都显示为“应用程序/八位字节流”,而不是“图像/jpeg”

但当设置元数据方法时,对象将显示两个元数据:

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

所以。。。我如何设置元数据以仅实现一个元数据,如:

Content-Type=image/jpeg

谢谢


共 (1) 个答案

  1. # 1 楼答案

    看起来更简单:

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