java - Spring AWS S3 : How to upload an image and get a URL which shows it rather than downloads it?

标签 java spring amazon-web-services amazon-s3 spring-cloud

所以我的问题是,当我打开上传文件的 URL 时,它会下载它。 我做了一些研究,问题是我应该以某种方式向 S3 指定它是一个图像。 目前这是处理上传的功能,但我不知道如何在那里设置类型。 或者是否有识别图像的内置功能,当打开 URL 时它会自动显示它们而不是下载它们?

谢谢

public void writeResource(byte[] bytes, String fileName) throws IOException
{    
   Resource resource = this.resourceLoader.getResource("s3://bucket/" + fileName);
   WritableResource writableResource = (WritableResource) resource;
   try (OutputStream outputStream = writableResource.getOutputStream())
   {
      outputStream.write(bytes);
   }
}

最佳答案

 @Autowired
 private AmazonS3 amazonS3;    

 ObjectMetadata meta = new ObjectMetadata();
                       meta.setContentType(file.getContentType());
                       meta.setContentLength(file.getSize());
                       meta.setHeader("filename", fileName);

 ByteArrayInputStream bis = new ByteArrayInputStream(file.getBytes());

 TransferManager transferManager = new TransferManager(this.amazonS3);
                 transferManager.upload(bucket, filename, bis, meta);

我就是这样解决的。希望这对某人有帮助。 :)

关于java - Spring AWS S3 : How to upload an image and get a URL which shows it rather than downloads it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057267/

相关文章:

java - Redis:具有大小限制和 LRU 驱逐功能的 HashMap

java - 在处理来自 @Index(unique=true) 的 ClientException 后,对 Neo4j 的所有后续调用都会卡住

amazon-web-services - 未触发 Amazon SNS 退回事件

amazon-web-services - 将 www 子域指向裸域而不是存储桶名称

java - JVM 崩溃报告中的 oop 是什么意思?

java - 从字符串创建半三角形

java - 如何从表中获取用户名

java - Spring认证LDAP示例和真实的LDAP服务器

java - 使用 Oracle、Hibernate 和 Spring...没有返回数据

amazon-web-services - CloudFormation 模板的保留字?