所以我的问题是,当我打开上传文件的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);
}
}
答案 0 :(得分:3)
@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);
这就是我解决它的方式。希望这能有所帮助。 :)
答案 1 :(得分:0)
据推测,您要将此数据发送回浏览器(?)。如果要将文件的内容发送回浏览器,则需要设置响应的内容类型,以向浏览器指示文件是图像;要执行此操作,您需要将内容类型设置为" image / jpeg" 。
通过指定内容类型,浏览器然后知道如何处理文件(在这种情况下,在浏览器中呈现图像)。