Browser 缩放存储在S3的图像

Browser 缩放存储在S3的图像,browser,image-processing,amazon-s3,python-imaging-library,cloudfiles,Browser,Image Processing,Amazon S3,Python Imaging Library,Cloudfiles,我的情况是,我需要将许多网站的图像存储推出一个可以无限扩展的服务(S3、CloudFiles等)。到目前为止,在Django的帮助下,我们已经允许用户使用Python的图像库动态生成自定义缩略图大小 通过将图像移动到类似S3的位置,快速创建缩略图的能力就丧失了。我们可以: 通过从S3下载源代码并在本地创建缩略图来缓慢地执行此操作 缺点:速度慢,带宽密集 通过创建一组预先确定的缩略图大小(a'la Flickr)并将它们全部推到S3来提前完成此操作 缺点:它限制了可以生成的大小,并存储了大量永远不

我的情况是,我需要将许多网站的图像存储推出一个可以无限扩展的服务(S3、CloudFiles等)。到目前为止,在Django的帮助下,我们已经允许用户使用Python的图像库动态生成自定义缩略图大小

通过将图像移动到类似S3的位置,快速创建缩略图的能力就丧失了。我们可以:

  • 通过从S3下载源代码并在本地创建缩略图来缓慢地执行此操作
    缺点:速度慢,带宽密集
  • 通过创建一组预先确定的缩略图大小(a'la Flickr)并将它们全部推到S3来提前完成此操作
    缺点:它限制了可以生成的大小,并存储了大量永远不会使用的文件
  • 让浏览器使用img标签上的高度/宽度属性调整大小。
    缺点:下载比所需文件大的文件所使用的额外带宽
  • 在这一点上#3看起来是一个简单的解决方案,几乎没有缺点。一些快速测试表明,质量并没有预期的那么差(我们可以保证保持纵横比)

    关于我们可能未考虑的其他选项或缺点的任何建议


    注:图片为数码照片,仅用于网络显示。大小在高度/宽度上的范围为1000-50像素。

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

    我们的服务器位于Slicehost,根据他们的说法,我们可以免费连接到CloudFiles,速度为100mbps。是的,这确实消除了我对#1的恐惧。如果加上一个缓存,比如说Digg,当一张图像被击中时,这应该很有效。我讨厌想象成千上万的用户一遍又一遍地要求对同一幅图像进行JPEG编码。