音乐播放器
Great Wei
 
文章 标签
16

Powered by Gridea | Theme: Fog

AWS lambda实现s3图片资源数据万象

详细步骤:

00x1 什么是数据万象

前端可通过原有的cdn链接后添加相应的图片操作参数即可实现动态的进行图片资源操作(图片缩放,裁剪,质量缩放,水印,文件类型转换)
eg: https://www.greatwei.com/1.png => https://www.greatwei.com/1.png@200h_300w_20x20x100x100c.jpg
这样的链接即可获取1.png 高200, 宽300, 左上角20,20位置开始裁剪裁剪100x100大小的图片,并且图片类型转换成jpg的图片


00x2 如何实现

Cdn请求过程

image2020-8-25_11-43-19.png
如图,cdn请求过程存在四条链路,我们可以根据自己的需求在指定路径挂载lambda函数触发,本次方案采用的是在路径3设置图片处理函数(aws支持nodejs, go, python来实现函数), 基本过程,路径3接收获取资源失败的相关信息,解析文件路径获取原图,进行图片资源操作,将处理后的数据同步返回cdn,异步上传处理后的图片到s3

注意点

(1) 处理后图片返回cdn,应该设置reponse Etag,使用http的缓存策略
(2) 异步上传到s3需要给资源打上tag,并且在aws管理后台设置tag的声明周期,防止资源占用,需要进行删除,只需要保留原图
(3) @200h_300w_20x20x100x100c.jpg 参数容易被恶意修改,导致s3产生大量资源内容,可以将改规则进行对称加密防止用户发现规则,或者给资源进行sign计算,虽然图片资源比例暴露,但是用户无法进行修改
(4) 资源过大的图片可以进行忽略,通过资源meta信息判断文件大小,超过指定大小跳过处理


00x3 优化空间

(1) 大文件处理
(2) 图片处理速度


请到客户端“主题--自定义配置--配置”中填入leancloud_appID和key