最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

生成缩略图并上传到节点中的s3存储桶的最佳方法是什么?

运维笔记admin10浏览0评论

生成缩略图并上传到节点中的s3存储桶的最佳方法是什么?

生成缩略图并上传到节点中的s3存储桶的最佳方法是什么?

我正在开发一个示例应用程序,我的后端在NodeJs上,前端使用React。这个应用程序将处理一堆照片,因此用户可以上传照片和后端将其保存到s3桶。此外,我需要一些转换,如生成不同大小的缩略图,最可能是两个100 px * 100px和200px * 200px的缩略图。

话虽如此,处理缩略图生成过程的最佳方法是什么?

我还经历了一些像cloudinary这样的东西,它似乎是动态图像转换的一个很好的选择。

现在我对此有一些与最佳实践相关的问题。

  1. 我应该点击我的应用服务器(NodeJs)进行图片上传/转换吗?我问的原因是,我尝试了cloudinary图像上传甚至没有打到应用服务器。
  2. 或者可以点击应用服务器并在那里生成缩略图并将其上传到s3。
  3. 点击app服务器并将图片上传到s3存储桶并触发lambda函数进行所有转换(有什么优势?)

感谢您耐心阅读这些问题。我对任何建议,想法和关注持开放态度。

回答如下:

这取决于你的要求,但我会尝试并提出每个的好处和陷阱。

首先,要考虑一些事项:

  • 要上传多少张图片?
  • 这些图像和缩略图多久会被访问一次?
  • 上传后多快需要访问缩略图?尽可能接近即时或几秒延迟可接受?
  • 这些图像有多大?
  • 更重要的是,运营成本或开发成本/时间?

您需要了解所有这些能够有效比较的事情。

您的选择实际上不是三个不同的选项。

选项1是一个独立的架构决策。无论您是通过应用服务器推送所有内容还是其他内容取决于您,前端或后端都有适用于AWS和Cloudinary的SD。但是如果你把所有东西放在前端,要小心你如何管理你的钥匙。无论哪种方式都要小心,但通常每个人都可以看到人们忘记的前端代码。

选项2和3涉及您是否在初始上传和受您控制的情况下执行其他工作,或者与更多基于事件的体系结构分开关注。

如果您在应用服务器上完成所有工作,那么请确保它具有适当的大小以应对工作负载,并且如果出现任何问题,它可以处理重试。这可能是最适合您的工作,显然会给您的服务器带来最大的负担。增加服务器的大小,可能比使用lambdas花费更多,除非你的吞吐量非常稳定,非常高,你可以正确地指定它们。

对图像上载的结果进行自动工作流程会使云提供者的责任有点复杂(至少重试)。但是你仍然需要正确调整lambda的大小,以便及时处理所有事情。

这两种情况都有很多代码示例,但对于AWS lambda可能更多(警告 - 基于30秒的谷歌搜索)。

您实际上并未将其作为选项进行调用,但Cloudinary将动态执行图像处理(如您在介绍中所述)。这意味着您实际上不需要创建和保存缩略图,只需使用URL中指定的大小调整原始图像即可。你能延迟生活吗?大多数时候它几乎无法识别。你能忍受这笔费用吗?无论是钱还是用完你的免费积分。

发布评论

评论列表(0)

  1. 暂无评论