我对S3文件密钥有疑问。我正在上传一个图像文件,其中键是图像的网址。这是代码段。
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 /图像/分段/文件/ GUID1234
没有图像名称的参考。图片网址显示为 http://TestBucket.s3.amazonaws.com/image/staging/file/GUID1234
如您所见,虽然它在浏览器中正确显示图像,但没有图像名称的参考。我需要将这个url嵌入到html页面中,如果缺少图像名称,它就不会好了。
只是想知道,如果有办法保留图片名称,以便网址看起来像 http://TestBucket.s3.amazonaws.com/image/staging/file/GUID1234/test.jpeg
任何指针都将受到高度赞赏。
由于
答案 0 :(得分:0)
使用S3,KEY
应该是您希望对象拥有的整个名称。在您的情况下,KEY = image/staging/file/GUID1234
显示(我不确定,因为您没有包含该代码)。如果您希望将对象命名为image / staging / file / GUID1234 / test.jpeg,则需要将KEY
的值设置为image/staging/file/GUID1234/test.jpeg