上传文件的AWS S3密钥问题

时间:2013-08-09 19:20:57

标签: java amazon-web-services amazon-s3 amazon

我对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

任何指针都将受到高度赞赏。

由于

1 个答案:

答案 0 :(得分:0)

使用S3,KEY应该是您希望对象拥有的整个名称。在您的情况下,KEY = image/staging/file/GUID1234显示(我不确定,因为您没有包含该代码)。如果您希望将对象命名为image / staging / file / GUID1234 / test.jpeg,则需要将KEY的值设置为image/staging/file/GUID1234/test.jpeg