【问题标题】:Manage Dynamic Thumbnails on Amazon S3 / Cloudfront在 Amazon S3 / Cloudfront 上管理动态缩略图
【发布时间】:2013-01-12 15:34:28
【问题描述】:

我只是想问一下是否可以快速动态显示上传到 S3 上的图像的缩略图。让我们说个人资料图片。

我展示了 3 种实际尺寸的图片,分别为 150x150 和 25x25。目前我正在我的服务器上动态调整它们的大小 - 而不是 S3。

http://www.mydomain.com/images/25X25/image.jpg

上面是一个 URL,用于检查缩略图是否存在,如果不存在则生成它。目前我只允许 3 种尺寸。

很快我们就会转移到 S3。在 S3 上是否也可能发生这种情况 - 我是否必须获取原始图像,调整其大小,然后在 S3 上重新上传 - 一切都在运行中 - 当然启用缓存?

或者我应该在我上传实际图像本身时执行此操作 - 再制作 2 个缩略图(使用易于阅读的文件名 lile image_25_25 和 image_150_150)并连同它一起上传?

所以最终每次上传都会产生

https://bucket.s3.amazonaws.com/image.jpg
https://bucket.s3.amazonaws.com/image_25_25.jpg
https://bucket.s3.amazonaws.com/image_150_150.jpg

你认为哪个是好的选择?或者请提出建议 - 真的很感谢你们所有人(错误 - 永远是 - 这么棒的地方,这是寻求帮助的地方!)

干杯!

【问题讨论】:

    标签: image amazon-web-services amazon-s3


    【解决方案1】:

    我认为您的方法将在很大程度上取决于您进行此更改的主要目标是什么,您希望处理什么样的上传量,这些缩略图的典型点击率是多少,以及您的限制条件是什么是关于执行此缩略图的成本(即执行处理所需的服务器资源和存储成本)。

    如果 #1 最重要的事情是加快最终用户的图像下载时间,而不考虑成本,那么在上传时构建缩略图可能是最佳选择(可能与在S3 存储桶)。这也会使您的应用程序无法尝试动态地为这些图像的请求提供服务。一个缺点显然是最终用户的上传过程可能需要更长的时间(如果您需要在向最终用户指示成功之前在 S3 中创建和可用的文件),当然您最终不得不占用服务器资源和每张上传图片的存储空间,无论该图片是否会被使用。

    如果您更关心使用最少的资源和存储量,那么您可以继续采用使用 Web 应用程序处理图像请求并在 S3 中根据需要创建图像的方法。您可能会使用 s3fs 之类的东西(打开其缓存功能)来使这些图像在您的应用程序服务器的本地安装上可用,以帮助加快进程,但如果您的整体目标是提供最佳的用户体验(即最快的下载)。

    【讨论】:

    • 非常感谢您的详细回答。我会在上传时为每个图像生成和上传缩略图,并在 S3 前面使用 Cloudfront 来提供文件。将在此处发布结果和统计数据以进一步讨论!
    • 嗨@foxybagga,你最终走的是什么路?我现在正在制作拇指并上传到 S3,但试图找出最好的方法,请分享经验:)
    • 你好@user1725378 - 仅在请求时生成拇指对我来说是最好的解决方案 - 也节省了服务器运行时间和存储空间!
    • 如何根据要求制作拇指? s3 支持这样的功能吗?
    • @user1725378 S3 只是一个存储文件的地方。生成缩略图所需的任何逻辑都需要最终实现。
    猜你喜欢
    • 2014-07-02
    • 2015-01-05
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 2012-12-24
    • 2015-07-18
    相关资源
    最近更新 更多