一、背景

现在移动互联网情况下,越来越多的商户使用手机拍照上传图片。以及使用图片处理软件不规范偶尔会导出来宽高符合建议,但是文件大小却占到1M,导致用户访问多了网站打开非常慢。使用OSS流量费用超高。
在尽可能不影响画质的情况下,将上传的JPG、PNG格式的图片实时压缩,大幅缩小文件体积。有效减少服务器存储空间,减少服务器流量使用,降低成本。加快客户端图片的加载速度,提升用户体验。
经实测10余张 50KB - 2M的图片,图片压缩比例在50%以上。
** 对于使用OSS的客户,同样生效。

二、使用七牛云存储

免费的SDK会导致图片清晰度会损失。收费的SDK会收费很贵,例如压缩率超高的 https://www.tinypng.com 。七牛云也属于收费SDK,由于每月有足够使用的免费额度,所以我们使用图片瘦身使用了七牛云存储提供的功能。

三、我们使用七牛云存储压缩图片的流程

  1. 用户上传图片,我们上传到七牛云存储
  2. 上传后自动下载七牛云压缩后的图片至服务器(需使用七牛云流程,实名认证后每月赠送10G)
  3. 自动删除七牛云存储的图片,清除存储空间的占用

七牛云注册链接:https://portal.qiniu.com/signup?code=1h64c14x3krwy
七牛云实名认证后每月会赠送10G存储免费空间,流量每月10G。由于流量只用于服务器从七牛云下载至服务器,不用于用户访问,足够中型网站的使用。(此信息记录于2020年2月23日,七牛云后续若变更免费规则请自行前往七牛云网站查看,筑梦O2O不对此负责)
七牛云会收取 每1千张图片 ¥0.1元 的费用,此费用固定收取,无免费政策。
tinypng接口费用为 每1千张图片$9美元 的费用,约合¥63(2020年2月23日的汇率)

三、图片瘦身配置

系统后台 -> 系统配置
3.上传图片压缩优化 - 图1
bucket配置项获取处:
3.上传图片压缩优化 - 图2
七牛云域名:(建议绑定一个自有域名,七牛云域名只能使用30天)
3.上传图片压缩优化 - 图3
3.上传图片压缩优化 - 图4
另外需要开启 公共读写
七牛云 accessKey secretKey 获取处:
3.上传图片压缩优化 - 图5
打开页面的AK即 accessKey,SK即 secretKey

四、为什么用OSS,不直接使用七牛云

两者费用综合接近,然而系统为了减少服务器存储费用会在使用了OSS之后,自动删除服务器上存储的图片。但是后续在处理图片时(例如生成商品海报,推广海报),会从OSS上下载图片至本地。OSS和阿里云服务器在同样的内网,流量免费,节省了费用。同时由于在内网,图片上传速度也会更快。