由于jsdelivr支持根据github仓库作为cdn源,所以我们可以通过github api修改仓库内容和tag(jsdelivr根据tag来读取内容)来实现「将静态资源发布到CDN并获取URL」的业务流程。
基础条件有:
- 仓库一个: 可以预先创建好,并将仓库地址写入配置
REPOSITORY
- 仓库编辑权限(github token)一个:进入 https://github.com/settings/tokens 创建,repo打上勾。
脚手架:
- 前端:React, Webpack等
- 后端(可选[1]):node.js, Express, Formidable(上传)等
- 运维(可选[2]):作为docker镜像或k8s package发布
前端业务流程:
- 填写输入github token的表单并提交,保存到localStorage
- 检查仓库权限,检查是否存在特殊格式的tag[3], 没有则创建
- 选择图片并生成图片的sha1码,通过Github api上传到仓库
- 删除特殊tag并重新创建
- 生成jsdelivr的URL
- 获取并拷贝图片URL对应的Markdown格式
- 错误提示
- [1][2] 基础功能前端即可完成,在后端扩展是为了支持多仓库,多用户场景。
- [3] 专门用于给cdn获取文件的tag。常用的tag是版本号形式的,如0.0.1, 0.0.2,如果每次都更新一个tag号会 很混乱,不如就用一个专门的tag来发布文件。
MIT License