cdn相关说明及用法
一般cdn
除了加速文件外,还有其它隐藏接口或玩法,这里就一起说下。
1、加速其它前缀的切片和图片
cdn
默认只能加速/public
和/videos
前缀的ts
后缀切片和png
伪装切片;和/public
和/videos
前缀的jpg
和gif
后缀的图片。
如果你想修改加速前缀,比如我想加速我自己一个站图片,地址链接为/imge/xx.jpg
,那么我需要将/imge
前缀加进去,修改cdn
源码app.js
,如下:
#切片前缀在120行上下
app.get(/^\/(videos|public)\/.*(ts|png)$/,
#图片前缀在192行上下
app.get(/^\/(images)\/.*(jpg|JPG|png|PNG|jpeg|JPEG|gif|GIF|webp|WEBP)$/,
如果我在图片里加一个/imge
前缀,且新增一个png
,jpeg
后缀,则修改如下:
app.get(/^\/(imge)\/.*(jpg|gif|png|jpeg)$/,
#然后删除193-198这几行代码
oneOf([
check('width').notEmpty().isInt({ min: 20, max: 3000 }).toInt(),
check('height').notEmpty().isInt({ min: 30, max: 6000 }).toInt(),
]),
query('format').default('webp').trim().isIn(['webp', 'jpg', 'png']),
query('force').default(false).isBoolean(),
由于png
被用作伪装切片加速,所以你图片加速再加一个png
后缀的话,会和上面冲突,所以我需要在图片这里移除和切片相同的前缀,这里只留了imge
,就不会冲突了,当然你也可以移除切片加速的png
后缀,最后使用pm2 reload all
生效。
2、加速并处理任意的图片地址
该cdn
可以用作一个图片云处理服务器,直接处理任何的图片地址,并将图片转换为webp
格式缓存到本地服务器,体积极小,加载极快,也可直接通过该接口处理调用其它图片。
云处理服务接口/api
,调用示例:
https://imageserver.querydata.org/api?url=https://wmdb.querydata.org/movie/poster/no-poster.jpg&width=200&format=webp
#参数详解
url为需要加速处理的图片地址,且服务器必须可以正常请求该图片域名
width和height参数为海报长宽,至少需要存在一个,当仅存在其中一个时,则会保留图片宽高比自动处理!
format为返回类型,支持jpg、png和webp,推荐使用webp,程序会判断浏览器是否支持webp,支持webp返回webp,不支持返回jpg!webp加载实在太快了!