cdn相关说明及用法

一般cdn除了加速文件外,还有其它隐藏接口或玩法,这里就一起说下。

1、加速其它前缀的切片和图片

cdn默认只能加速/public/videos前缀的ts后缀切片和png伪装切片;和/public/videos前缀的jpggif后缀的图片。

如果你想修改加速前缀,比如我想加速我自己一个站图片,地址链接为/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前缀,且新增一个pngjpeg后缀,则修改如下:

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加载实在太快了!