根据我们的项目要求,我们需要保存艺术品(JPG,PNG,TIFF等图像格式的图像),其大小可以在1KB至1MB之间。现在,我们将它们存储在AWS S3存储桶中。
对于我们的实施,我有以下几个问题:
答案 0 :(得分:0)
Amazon S3是存储图像的好服务,因为存储量没有无限制,并且文件可以在互联网上访问(而不是拥有通过您的应用为他们提供服务。
Amazon S3没有内置功能来创建缩略图。当新映像存储在S3存储桶中时,您可以考虑触发AWS Lambda函数。参见:Tutorial: Using AWS Lambda with Amazon S3
将缩略图存储在Amazon S3 中而不是数据库中会更加有效。当创建带有预览图标的HTML页面时,只需指向Amazon S3中的图标图像。然后,用户的浏览器将直接从S3中获取它,而不是您的应用必须检索并提供图像。
如果您希望控制对图像和缩略图的访问,请使用Amazon S3 pre-signed URLs授予限时访问私有对象的权限。
创建自己的缩略图的另一种方法是使用 缩略图即服务产品之一,例如:
答案 1 :(得分:0)
import java.awt.*;
import javax.imageio.*;
import org.imgscalr.Scalr;
void createThumbnailUsingScalr(File sourceImage) throws Exception {
File destImage =
new File("/Path/For/Destination/Thubnail.png");
BufferedImage img = ImageIO.read(sourceImage);
BufferedImage thumbImg = Scalr.resize(img, Scalr.Method.QUALITY, Scalr.Mode.AUTOMATIC, 200, 200, Scalr.OP_ANTIALIAS);
ImageIO.write(thumbImg, "PNG", destImage);
}
上面的代码并不能满足我的需求