注:当前项目为 Serverless Devs 应用,由于应用中会存在需要初始化才可运行的变量(例如应用部署地区、服务名、函数名等等),所以不推荐直接 Clone 本仓库到本地进行部署或直接复制 s.yaml 使用,强烈推荐通过
s init
的方法或应用中心进行初始化,详情可参考部署 & 体验 。
image-compress 帮助文档
弹性高可用的图片压缩功能
前期准备
使用该项目,您需要有开通以下服务:
服务 | 备注 |
---|---|
函数计算 FC | 图片压测函数部署在函数计算 |
推荐您拥有以下的产品权限 / 策略:
服务/业务 | 权限 | 备注 |
---|---|---|
函数计算 | AliyunFCFullAccess | 创建或者更新图片压缩函数 |
部署 & 体验
🔥 通过 Serverless 应用中心 , 该应用。
- 通过 Serverless Devs Cli 进行部署:
- 安装 Serverless Devs Cli 开发者工具 ,并进行授权信息配置 ;
- 初始化项目:
s init image-compress -d image-compress
- 进入项目,并进行项目部署:
cd image-compress && s deploy - y
应用详情
我们把图片压缩逻辑封装成一个 python 的函数,可以快速发布函数计算平台,从而得到一个弹性高可用的图片压缩服务。
其中:
-
对于 png 格式的图片, 使用了 pngquant 工具进行图片压缩处理
-
对于其他格式, 使用 wand (ImageMagick) 对图片进行压缩处理
通过本应用,您可以部署一个图片压缩服务,比如 PNG 图片压缩效果如下:
使用文档
项目部署完成后, 进入应用的环境详情,跳转到指定的压缩函数:
对该函数就行调用, 其中 payload 是如下 json 格式
{
"bucket": "mybucket",
"region": "cn-hangzhou",
"image": "src/a.png",
"quality": 75,
"dst": "dest"
}
其中
- bucket: bucket 名字
- region: 参数是可选的, 不填默认为和 FC 函数相同的 region
- image: 表示图片在 bucket 上的 objectkey
- quality: 压缩质量 0-100, 默认值为 75
- dst: 保存压缩后图片的目录
开发者社区
您如果有关于错误的反馈或者未来的期待,您可以在 Serverless Devs repo Issues 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 FC 组件的最新动态,您可以通过以下渠道进行:
微信公众号:serverless |
微信小助手:xiaojiangwh |
钉钉交流群:33947367 |