如何在浏览器中打开s3存储桶上的图像?
我已经设置了一个亚马逊s3存储桶来托管我的webapp的图像,我遇到的问题是当我点击图像的链接时,它会下载图像而不是在浏览器中显示它。
这是我正在使用的代码:
private void uploadFileTos3bucket(String fileName, MultipartFile file)
{
try
(InputStream is = file.getInputStream())
{ ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(file.getBytes().length);
metadata.setLastModified(new Date());
metadata.setContentType("image/*"); s3client.putObject(new
PutObjectRequest(bucketName, fileName, is, metadata).withCannedAcl(CannedAccessControlList.PublicRead)); }
catch(IOException e) { e.printStackTrace();
}
}
有没有人有任何其他想法或解决方案?
答案 0 :(得分:2)
将您的contenttype
更改为image/png
,并认为您在S3中的图片为.png
格式。您需要设置S3存储桶中设置的相应内容类型。例如,如果是文本,请将其设置为text/plain
。同样,对于图像,请将其设置为image/png
。此外,您的文件内容类型不应为binary/octet-stream
,否则将无法打开,而是会下载。