(一).介绍
TinyPNG(熊猫压缩)官方提供了浏览器网站版,通过用户手动上传和下载图片不光使用比较繁琐而且还有使用限制。TinyPNG(熊猫压缩)限制:
- 一个月只能免费压缩500张
- 免费压缩的情况下图片有大小限制(5M)
- 批量压缩的情况下,存在数量限制(20张)
- 可压缩类型较少(JPG与PNG)
(二).突破TinyPNG(熊猫压缩)限制
nginx
在将客户端请求转发给应用服务之前,会将请求的客户端IP地址写入到 X-Forwarded-For
头中,如下:
X-Forwarded-For: client, proxy1, proxy2
实现思路:
- 1.递归遍历本地文件夹里的文件。
- 2.获取遍历文件名的后缀和文件体积,格式必须是
.WebP
.PNG
.JPEG
且文件体积低于5MB
。 - 3.每次上传文件随机生成一个IP地址(tinypng 对用户上传数量有限制,使用了
X-Forwarded-For
头绕过该限制)。 - 4.处理返回数据拿到远程压缩图片地址。
- 5.通过远程压缩地址下载图片至本地文件夹。