我面临的情况是,我需要将多个网站的图像存储推送到可以无限扩展的服务(S3、CloudFiles 等)。到目前为止,我们已经能够允许用户使用 Python 的图像库在 sorl-thumbnail 的帮助下即时生成自定义缩略图大小。在 Django 中。
通过将图像移动到 S3 之类的设备,快速动态创建缩略图的能力就会丧失。我们可以:
- 慢慢地从 S3 下载源代码并在本地创建缩略图
缺点:速度慢且占用带宽 - 通过创建一组预先确定的缩略图尺寸(类似于 Flickr)并将它们全部推送到 S3 来预先完成此操作
缺点:它限制了可以生成的大小并存储了大量永远不会使用的文件 - 让浏览器使用 img 标签上的高度/宽度属性调整大小。
缺点:下载超过必要的文件会占用额外带宽
此时#3 看起来是一个简单的解决方案,几乎没有什么缺点。一些快速测试和 data from this website表明质量没有预期的那么差(我们可以保证纵横比保持不变)。
对于我们可能没有考虑的其他选项或缺点有什么建议吗?
注意:这些图像是数码照片,仅用于在网络上显示。尺寸的高度/宽度范围为 1000-50 像素。
最佳答案
我建议使用 EC2 按需缩放图像。由于 EC2 和 S3 之间的带宽是免费的并且速度应该很快,我认为这消除了解决方案 #1 的所有问题。
关于browser - 缩放存储在 S3 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563347/