缩放存储在S3的图像

Pet*_*ete 12 browser image-processing amazon-s3 cloudfiles python-imaging-library

我需要将一些网站的图像存储推送到可以无限扩展的服务(S3,CloudFiles等).到目前为止,我们已经能够允许我们的用户使用Python的成像库动态生成自定义缩略图大小,并在Django中提供sorl-thumbnail的帮助.

通过将我们的图像移动到像S3这样的东西,快速创建动态缩略图的能力就会丢失.我们可以:

  1. 通过从S3下载源并在本地创建缩略图
    来缓慢执行:它速度慢且带宽密集
  2. 通过创建一组预先确定的缩略图大小(a'la Flickr)并将它们全部推送到S3
    con来预先做到:它限制了可以生成的大小并存储了大量永远不会被使用的文件
  3. 让浏览器使用img标记上的height/width属性调整大小.
    con:下载大于必要文件的额外带宽

此时#3看起来是一个解决问题的简单方法,但缺点很少.来自该网站的一些快速测试和数据表明,质量没有预期的那么糟糕(我们可以确保保持纵横比).

关于我们可能没有考虑的其他选择或缺点的任何建议?

注意:图像是数码照片,仅用于在网络上显示.尺寸范围从1000到50像素的高度/宽度.

Amo*_*mok 6

我建议使用EC2按需缩放图像.由于EC2和S3之间的带宽是免费的,它应该很快,我认为这消除了解决方案#1的所有问题.