github图床、cdn加速和自动无损压缩一条龙!
本文内容包括利用Github创建图床,PicGo的使用和配置JsDelivr对图链CDN加速,利用imgbot自动无损压缩图片和automerge-action自动合并分支。
在Github官网https://github.com
如果打开缓慢或者打不开,建议使用阿里DNS或DNSPOD。
首先要准备一个账户,在这个账户下创建一个仓库,仓库名字随意,一定要选择Public(公开),选择README初始化仓库,点击下方的creat repository创建仓库。图1

图1
这时候,向仓库上传图片就可以用了。
网页上预览图片,把网址中的blob改成raw回车,此时的网址raw.githubusercontent.com/·······就是图链,但raw.githubusercontent.com访问极其不稳定,需要jsdelivr加速。
jsdelivr官网https://www.jsdelivr.com/?docs=gh,
方法为https://cdn.jsdelivr.net/gh/用户名/仓库名@分支名/文件路径
例如我预览一张图的地址为https://github.com/user1/PICS/blob/main/abc.jpg
那么加速后的图链接为https://cdn.jsdelivr.net/gh/user1/PICS@main/abc.jpg
其中main为默认分支,如果你没修改过的话,仓库创建时默认的就是main。
手动操作太麻烦,可借助软件PicGo,快捷又方便。
Picgo发布网址https://github.com/Molunerfinn/PicGo/releases,我这里是win10,就下载exe文件。安装后在图2界面

图2
设定仓库名填入是 用户名/仓库名 例如user1/PICS
分支名填 main
获取token(图3):在github页面,用户头像,settings,Developer,token名字随便填,勾选repo,点击最下方generate token生成token,只显示一次,点击复制按钮,粘贴到记事本(automerge需要使用)和到图2的token中

图3
储存路径填 可留空,如果要存文件夹里,例如文件夹A 就填A/
自定义域名填 https://cdn.jsdelivr.net/gh/用户名/仓库名@分支名 例如 https://cdn.jsdelivr.net/gh/user1/PICS@mian
点击确定保存 如图4这样

拖拽图片到上传区等待上传完成,链接格式可以自选,上传完成后会自动到剪切板,也可以在相册里复制出来,链接都是用jsdelivr加速过的,图5,图6。

图5

图6
有时候我们的图片有好几兆大小,多图加载耗费时间,这里介绍利用imgbot无损压缩图片
imgbot是一个压缩图片的应用,官网https://imgbot.net/,对于开源项目可以免费使用。
在github上imgbot的应用地址为https://github.com/marketplace/imgbot 点击setup a plan,选择open source,点击install it for free, 依据提示,可以选择仅为图床的仓库安装。图7

图7
根据imgbot的说明文档https://imgbot.net/docs/ 可自定义配置
在图床仓库下创建文件 .imgbotconfig 内容为
{ "schedule": "daily" "minKBReduced": 50 }
如图8,含义是每日检测仓库,压缩大于50kb的图片。默认的是无损压缩,想要更多的压缩可添加有损压缩“aggressiveCompression”: true,自行参考说明文档配置参数。不用担心图片今天被imgbot压缩了明天还会再被压缩。点commite creat a file保存。

图8
图片压缩了会自己发出一个pull requests,也会有邮件提示。图9,点击合并后压缩的图片就会替代原图。

图9
每次手动合并太麻烦了,下面介绍使用automerge-action自动合并。
automerge-action项目地址https://github.com/pascalgn/automerge-action 在github marketplace地址为https://github.com/marketplace/actions/merge-pull-requests
使用方法可参考官方文档自行定义。
在仓库中创建一个工作流,如图10

图10
图中代码为
name: automerge on: pull_request: types: - opened - ready_for_review pull_request_review: types: - submitted check_suite: types: - completed status: {} jobs: automerge: runs-on: ubuntu-latest steps: - name: automerge uses: "pascalgn/automerge-action@v0.13.1" env: GITHUB_TOKEN: "${{ secrets.MERGE_TOKEN }}" MERGE_LABELS: "" MERGE_METHOD: "squash" MERGE_COMMIT_MESSAGE: "[ImgBot] Optimize images" MERGE_FORKS: "false" MERGE_RETRIES: "5" MERGE_RETRY_SLEEP: "10000" UPDATE_LABELS: "" UPDATE_METHOD: "rebase"
其中 pascalgn/automerge-action@v0.13.1版本根据官方最新版自行修改。
在仓库设置中,配置MERGE_TOKEN 图11,

图11
其中的值为picgo配置时的token一样,如果之前没保存的话,可以再创建一个新的token填到这里。点击add secret保存。
至此 ,所有配置完成,使用picgo上传的图片,在imgbot自动压缩后会触发action自动合并。完全不再需要人工确认。
注:文中用户名和token为演示所用,已删除。