JSEW —— 类似于 jsDelivr 的静态资源加速

2023-03-23 10:36:41 浏览数 (1)

现在网络上大部分公益项目都为 jsDelivr 提供镜像加速,此时用户的资源文件必须从源服务器经 jsDelivr 再绕过公益服务才能回到用户手上。本身 jsDelivr 也回源 GitHub 和 NPM,那么为什么不从源拉起?

那好,那就从源拉起。

域名

目前,JSEW 的域名已经开启中国大陆境内和境外双 CDN 加速,为用户提供快速的服务。

使用 s.cky.qystu.cc 替换 fastly.jsdelivr.net, cdn.jsdelivr.net 作为加速域名,遵循中国大陆相关地区的法律法规。

端点

目前仅支持使用 /ghnpm,并且自动开启 HTTPS 访问与 Gzip 压缩。

GitHub

GitHub 文件来源于 raw.githubusercontent.com,将自动转换路径,API 如下:

代码语言:javascript复制
/gh/[USER_NAME]/[REPO_NAME]@[BRANCH_NAME]/[FILE]

请求链接:

代码语言:javascript复制
https://s.cky.qystu.cc/gh/detalkjs/client@master/dist/detalk.js

需要注意的是,部分 CDN 的缓存时间会比较长,如果是仓库 master 等变动较快的分支不建议使用。如果你需要实时获取最新的 Commit,那么请在请求 URL 后追加 !latest,这样 JSEW 会自动 307 跳转至最新的 Commit Tag.

同时,如果没有指定分支名,则会自动默认为 master

NPM

NPM 文件来源于 www.npmjs.com,将自动转换路径并获取文件 Hex,API 如下:

代码语言:javascript复制
/npm/[PACKAGE_NAME]@[VERSION]/[FILE]

请求链接例如:

代码语言:javascript复制
https://s.cky.qystu.cc/npm/@detalk/static@1.3.2/dist/detalk.js

如果当版本号为 @latest 时,为了避免缓存问题,将会自动 307 跳转至最新的版本号。

如果版本号为 @1 等只包含 majorminor 的形式时,将会自动 307 跳转至最新的以指定版本号为限制条件的完整版本号。

例如:

代码语言:javascript复制
https://s.cky.qystu.cc/npm/@detalk/static@1/dist/detalk.js
Redirect to =>
https://s.cky.qystu.cc/npm/@detalk/static@1.3.2/dist/detalk.js
代码语言:javascript复制
https://s.cky.qystu.cc/npm/@detalk/static@1.2/dist/detalk.js
Redirect to =>
https://s.cky.qystu.cc/npm/@detalk/static@1.2.1/dist/detalk.js

为了避免潜在问题,即使不指定版本号,也必须指定 @latest,否则无法访问。

自动压缩

除 Gzip 压缩外,目前 CKY#JSEW 还兼容部分文件的自动压缩功能。

例如,请求 main.min.js 文件,而目录下无对应文件,只有 main.js,那么则会自动获取 main.js 并进行压缩返回。

此功能目前适用于 CSS 与 JavaScript,只有在请求文件为 .min.js.min.css 且对应文件不存在时可用。

感谢您对公益服务的支持!

0 人点赞