上传文件的java AWS S3关键问题
我有一个关于S3文件密钥的问题。我正在上传一个图像文件,密钥是图像的url。下面是代码片段
AmazonS3 s3 = new AmazonS3Client(new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY));
PutObjectRequest putObj = new PutObjectRequest(BUCKET, KEY, createInputStream(IMAGE_PATH), createMetadata("image/jpeg"));
putObj.setCannedAcl(CannedAccessControlList.PublicRead);
PutObjectResult result = s3.putObject(putObj);
现在,这里有一个示例键:image/staging/file/GUID1234
图像名称:test。jpeg
现在,这是上传后S3中的情况。 TestBucket/image/staging/file/GUID1234
没有图像名称的引用。图像url显示为http://TestBucket.s3.amazonaws.com/image/staging/file/GUID1234
如您所见,虽然图像名称在浏览器中正确显示,但它没有引用图像名称。我需要将这个url嵌入到html页面中,如果图像名称丢失,它就不正常了
只是想知道,是否有办法保留图像名称,使url看起来像http://TestBucket.s3.amazonaws.com/image/staging/file/GUID1234/test.jpeg
任何指针都将受到高度赞赏
谢谢
# 1 楼答案
对于S3,
KEY
应该是您希望对象拥有的完整的名称。在您的情况下,似乎KEY = image/staging/file/GUID1234
(我不确定,因为您没有包含该代码)。如果希望将对象命名为image/staging/file/GUID1234/test。jpeg,则需要将KEY
的值设置为image/staging/file/GUID1234/test.jpeg