缩放存储在 S3 中的图像

2023-11-24

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

通过将我们的图像移动到 S3 之类的地方,能够quickly动态创建缩略图会丢失。我们可以:

  1. 从 S3 下载源代码并在本地创建缩略图,慢慢地完成
    缺点:速度慢且占用带宽
  2. 通过创建一组预先确定的缩略图大小(a'la Flickr)并将它们全部推送到 S3 来预先完成此操作
    缺点:它限制了可以生成的大小并存储了大量永远不会使用的文件
  3. 让浏览器使用 img 标签上的高度/宽度属性调整大小。
    缺点:下载超过必要的文件会占用额外的带宽

此时#3 看起来是一个简单的解决方案,几乎没有什么缺点。一些快速测试和来自本网站的数据表明质量没有预期的那么差(我们可以保证纵横比保持不变)。

对于我们可能没有考虑的其他选项或缺点有什么建议吗?

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


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缩放存储在 S3 中的图像 的相关文章

随机推荐

  • API网关CORS问题

    因此 我通过 AWS Gateway 提供的基本设置启用了 CORS 然而 对于这个 API 我需要允许所有请求的控制源并允许凭据 这是它的样子 您可能已经猜到的问题是 CORS 不允许此设置 您不能使用 Origin 通配符并将凭据设置为
  • 如何从代码隐藏中清除所有表单字段?

    HTML 有一种输入按钮类型 可以一步将表单中的所有字段重置为其初始状态
  • 如何使用JPA删除连接表中的行

    我有以下模型 一篇文章可以有一些标签 并且一些文章上可以有一个标签 所以它是与 3 个表的多对多关系 ARTICLE ARTICLE TAG TAG 当我删除标签时 我想删除 TAG 中的标签 该标签与 ARTICLE TAG 中标记的文章
  • 删除 DialogFragment 的正确方法:dismiss() 或 transaction.remove()?

    由于以下原因 我仍然遇到问题DialogFragment用于我的主要活动 我目前正在使用此代码来删除它 FragmentTransaction transaction getFragmentManager beginTransaction
  • 如何在 python 中使用 imaplib 获取电子邮件正文?

    我想从 IMAP4 服务器获取整个邮件 在 python 文档中 如果发现这段代码有效 gt gt gt t data M fetch 1 RFC822 gt gt gt body data 0 1 我想知道我是否始终可以相信 data 0
  • 如何在 Java 5 中屏蔽密码?

    我正在尝试用 Java 屏蔽密码 Sun java 建议了一种屏蔽密码的方法 如下所示 屏蔽密码 它使用一种简单的方法来做到这一点 public void run stop true while stop System out print
  • 使用自定义 AuthorizeAttribute 生成返回 URL

    我有一个自定义授权属性 using System using System Web Mvc using System Web Routing AttributeUsage AttributeTargets Class AttributeTa
  • 预取示例?

    任何人都可以给出一个示例或使用示例的链接 builtin prefetch在 GCC 或一般的 asm 指令 prefetcht0 中获得显着的性能优势 特别是 我希望该示例满足以下标准 这是一个简单 小型 独立的示例 删除 builtin
  • 角度/打字稿中的顺序代码执行

    如何让我的代码按顺序运行 例如 如果我有一个从服务获取一些数据的 for 循环 我想要n 1迭代仅在之后运行nth迭代已完成 我希望循环后的代码仅在 for 循环完成所有交互后才执行 示例代码 someMethod for var i 0
  • ChartJS 显示时间数据的差距

    我有这个图表 这是用 ChartJS 构建的 但是 在下午 1 点到 5 30 之间 没有数据 我想要图表做的就是显示没有数据 而不是连接两个点 这可以做到吗 理论上 我每 5 秒就有一个新值 但这可能会减少 所以我想我需要能够设置连接间隙
  • 如何在 sqlite.net PCL 中使用 InsertOrReplace?

    我正在使用这里的 sqlite net 的 PCL 版本 https github com oysteinkrog SQLite Net PCL 这是我的简单课程 public class LogEntry PrimaryKey AutoI
  • 非阻塞 API 是如何工作的?

    我一直在读Play 框架文档并发现这句话令人困惑 请注意 您可能会因此将阻塞代码包装在 期货 这并不意味着它是非阻塞的 它只是意味着 阻塞将发生在不同的线程中 你还需要做 确保您使用的线程池有足够的线程 处理阻塞 我的印象是所有这些非阻塞库
  • Swift 语言多播委托

    我正在尝试在 Swift 中实现多播委托功能 在 Objective C 中 我们有这个优秀的实现 https github com robbiehanson XMPPFramework blob master Utilities GCDM
  • 非托管内存未显示在任务管理器中

    我写了以下测试 实际上在更广泛的上下文中使用 IntPtr x Marshal AllocHGlobal 100000000 Console Write Press any key to continue Console ReadKey t
  • 关于配置首选项和js

    我想知道是否可以使用 javascript 获取 about config 中设置的某些首选项的值 动机是当用户登陆插件前端时获取我创建的 Firefox 插件中设置的首选项的值 基本上 我试图识别登陆 FE 的用户 而不要求他们明确登录
  • 如何通过 web.config 将 http 重定向到 https,将 www 重定向到非 www? [复制]

    这个问题在这里已经有答案了 我想使用 web config 将我的 ASP NET 站点上的所有请求重定向到 https 不含 www 那是 http http www https www 都应该去 https 到目前为止 我的 web c
  • 角度 - 垫子滑动切换不可见

    problem mat slide toggle 不可见 我正在尝试从下面的网址实现这个示例https material angular io components autocomplete examples 测试组件 html
  • 如何在客户端将自定义 ValidationAttribute 呈现为“da​​ta-val-xx”属性?

    给定一个如下所示的 ViewModel public class Login Required public string Username get set Required CustomValidator public string Pa
  • Angular 2滚动到底部(聊天风格)

    我有一组单细胞组件ng for loop 我已经一切就绪 但我似乎无法找出正确的 目前我有 setTimeout gt scrollToBottom 但这并不总是有效 因为图像异步地将视口向下推 在 Angular 2 中滚动到聊天窗口底部
  • 缩放存储在 S3 中的图像

    我面临的情况是 我需要将多个网站的图像存储推送到可以无限扩展的服务 S3 CloudFiles 等 到目前为止 我们已经能够允许用户在 Python 的图像库的帮助下动态生成自定义缩略图大小sorl 缩略图在姜戈 通过将我们的图像移动到 S