We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用S3存储图片,触发Lambda函数根据需求进行压缩
上传时用**程序脚本读取尺寸,将尺寸重命名进文件。**与前端约定命名规范,本文规则采用图片名_宽_ 高.扩展名的形式
图片名_宽_ 高.扩展名
S3中,除了原图目录外,需要新增压缩图目录。压缩图目录命名采用原图目录_压缩尺寸,便于前端获取。
原图目录_压缩尺寸
将上传完毕后S3返回的存储地址储存在MySQL中,压缩图地址通过替换目录实现,或者也存入MySQL中,随用随取。
上传时只存储原图。前端如果需要压缩图,再根据前端需求实时压缩返回,并存到压缩图目录,便于下次获取。
此方式优点是不占用服务器资源,用的时候再压缩,可支持多种尺寸。缺点是处理压缩占用时间长。
综上所述,采用方案一结合方案二的方式去做。将主流尺寸提前处理,同时支持非主流尺寸实时处理。
S3是什么?
wx.getImageInfo
wx.getImageInfo需要将图片下载到本地,即使用并发也会产生时间消耗。所以采用后端获取尺寸传递给前端的方式。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
S3+Lambda实现图片压缩✍
需求背景
实现思路
方案一
压缩
使用S3存储图片,触发Lambda函数根据需求进行压缩
尺寸读取
上传时用**程序脚本读取尺寸,将尺寸重命名进文件。**与前端约定命名规范,本文规则采用
图片名_宽_ 高.扩展名
的形式存储
S3中,除了原图目录外,需要新增压缩图目录。压缩图目录命名采用
原图目录_压缩尺寸
,便于前端获取。将上传完毕后S3返回的存储地址储存在MySQL中,压缩图地址通过替换目录实现,或者也存入MySQL中,随用随取。
方案二
上传时只存储原图。前端如果需要压缩图,再根据前端需求实时压缩返回,并存到压缩图目录,便于下次获取。
此方式优点是不占用服务器资源,用的时候再压缩,可支持多种尺寸。缺点是处理压缩占用时间长。
综上所述,采用方案一结合方案二的方式去做。将主流尺寸提前处理,同时支持非主流尺寸实时处理。
背景知识✍
S3的使用
S3是什么?
S3上传的Nodejs实现
图片上传与尺寸信息获取
Lambda 函数的配置与使用
图片压缩原理
Q&A✍
为什么要获取图片尺寸?
为什么不用微信提供的
wx.getImageInfo
API 获取图片宽高信息?wx.getImageInfo
需要将图片下载到本地,即使用并发也会产生时间消耗。所以采用后端获取尺寸传递给前端的方式。为什么用lambda不用S3 tag?
lambda处理图片是异步的吗?产生的时间差对前端影响有什么影响?
图片扩展名对压缩有影响吗?
The text was updated successfully, but these errors were encountered: