我将使用S3存储用户上传的照片。显然,我不会将图像文件提供给用户代理而不调整它们的大小。但是,不会有一种尺寸,因为一些缩略图会小于其他较大的预览。所以,我正在考虑制作一套标准尺寸,从最低16x16到最高1024x1024。这是解决这个问题的好方法吗?如果我以后需要新尺寸怎么办?你会如何解决这个问题?
答案 0 :(得分:14)
预先生成不同尺寸并将其存储在S3中是一种很好的方法,特别是如果你知道你需要什么尺寸,可能会使用所有图像的所有尺寸,并且没有这么多图像和存储成本过高的尺寸。
当我不想为每张图片预先生成和存储所有不同尺寸时,或者当我不知道将来要使用的尺寸时,我使用的另一种方法是:
将原始尺寸存储在S3中。
运行可根据要求从原始图片生成任何所需尺寸的网络服务器。
在网络服务器前粘贴CDN(CloudFront)。
现在,您的网站或应用程序可以从CloudFront请求/16x16/someimage.jpg等URL。第一次发生这种情况时,CloudFront将从您的Web服务器获取已调整大小的图像,但随后CloudFront将缓存该图像并为您提供服务,从而大大减少了访问您的Web服务器的流量。
这是一项服务,可以调整来自任意网址的图片的大小,通过CloudFront提供服务:http://filter.to
答案 1 :(得分:0)
这听起来像是一个很好的方法。根据您的应用程序,您应该定义一组始终生成的缩略图大小。但是,如果您的要求稍后更改,也会存储原始用户文件。如果要添加新的缩略图大小,可以迭代所有原始文件并从中生成新的缩略图。此选项为您以后提供了灵活性。