0

我对 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 中的样子。 测试桶/图像/暂存/文件/GUID1234

没有参考图像名称。图片网址显示为http://TestBucket.s3.amazonaws.com/image/staging/file/GUID1234

如您所见,虽然它在浏览器中正确显示了图像,但没有引用图像名称。我需要将此 url 嵌入到 html 页面中,如果缺少图像名称,它就不行了。

只是想知道,是否有办法保留图像名称,使 url 看起来像http://TestBucket.s3.amazonaws.com/image/staging/file/GUID1234/test.jpeg

任何指针将不胜感激。

谢谢

4

1 回答 1

0

对于 S3,KEY应该是您希望对象拥有的全名。就您而言,它似乎(我不确定,因为您没有包含该代码)KEY = image/staging/file/GUID1234。如果您希望将对象命名为 image/staging/file/GUID1234/test.jpeg,那么您需要将 的值设置KEYimage/staging/file/GUID1234/test.jpeg

于 2013-08-09T21:48:55.750 回答