有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

上传文件的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) 个答案

  1. # 1 楼答案

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