在 AWS S3 Java SDK 中设置对象元数据
Set object metadata in AWS S3 Java SDK
使用 Java 的 AWS SDK 版本 2,我正在尝试为我上传的对象设置内容类型元数据。
我使用此代码上传图片:
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
谢谢!
看起来更简单:
PutObjectRequest request = PutObjectRequest.builder().
bucket(MY_BUCKET).
key(remoteDir + remoteFileName).
acl(ObjectCannedACL.PUBLIC_READ).
storageClass(StorageClass.STANDARD).
contentType("image/jpeg").
build();
使用 Java 的 AWS SDK 版本 2,我正在尝试为我上传的对象设置内容类型元数据。
我使用此代码上传图片:
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
谢谢!
看起来更简单:
PutObjectRequest request = PutObjectRequest.builder().
bucket(MY_BUCKET).
key(remoteDir + remoteFileName).
acl(ObjectCannedACL.PUBLIC_READ).
storageClass(StorageClass.STANDARD).
contentType("image/jpeg").
build();