一个用Python实现的jsdelivr
从此不再受制于cdn.jsdelivr.net
演示站点: https://cdn.ravi.cool
程序不断完善中,如有问题请及时 issue
- 基本兼容cdn.jsdelivr.net
- 黑名单功能
- 内容审核功能
- 本地存储
- S3云存储
- 请求日志
功能 | pyjsdelivr | cdn.jsdelivr.net |
---|---|---|
github | ✔ | ✔ |
npm | ✔ | ✔ |
wordpress | ❌ | ✔ |
文件压缩 | ✔ | ✔ |
文件合并 | ✔ | ✔ |
git clone https://github.com/ravizhan/pyjsdelivr
cd pyjsdelivr
pip3 install ./requirements.txt
注意:如果需要文件压缩功能则还需安装nodejs
,npm
安装方法自行搜索,然后安装uglify-js
clean-css-cli
模块
npm install uglify-js clean-css-cli -g
对照下方,编辑 config.example.json
并重命名为 config.josn
{
"origin":{ // 可改为自建源
"github":"https://raw.githubusercontent.com/",
"npm":"https://unpkg.com/"
},
"blacklist_gh": { //github黑名单
"repo": ["xxx","xx"], //仓库黑名单
"user": [], //用户黑名单
"suffix": [] //后缀黑名单
},
"blacklist_npm": { //npm黑名单
"package": [], //包黑名单
"suffix": [] //后缀黑名单
},
"img_scan": { //内容审核服务
"provider": "", //baidu/huaiwei对应为百度华为内容审核服务,为空则不开启
"baidu_APP_ID": "",
"baidu_APP_KEY": "",
"baidu_SECRET_KEY": "",
"huawei_AK": "",
"huawei_SK": "",
"huawei_region": "" //如cn-north-1
},
"storage": { //存储位置
"location":"", // local/S3 对应为本地和S3存储,不存留空即可
"local_dir":"/data/", // 改为本地存储地址
"ACCESS_KEY":"",
"SECRET_KEY":"",
"endpoint_url":"" // 如https://s3.cn-north-1.jdcloud-oss.com
},
"mysql": { //mysql连接信息
"host": "",
"port": "",
"user": "",
"password": "",
"database": ""
}
}
将文件夹中的blacklist.sql
导入MySQL即可
python3 ./main.py
推荐配合nginx反代使用并开启缓存
建议使用systemctl以保持后台运行和开机自启
包含附加条款的MIT协议。
附加条款:
- 不得修改或移除本程序所显示的版权声明信息(包括但不限于Response headers,首页footer)。