Github图床+PicGo+JsDelivr+imgbot+automerge-action
光的影子Oo
编辑于 2021年04月28日 19:08

github图床、cdn加速和自动无损压缩一条龙!

本文内容包括利用Github创建图床,PicGo的使用和配置JsDelivr对图链CDN加速,利用imgbot自动无损压缩图片和automerge-action自动合并分支。

1.  Github图床创建

在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+JsDelivr

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无损压缩图片

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&#​34;: "daily&#​34;     "minKBReduced&#​34;: 50 }

如图8,含义是每日检测仓库,压缩大于50kb的图片。默认的是无损压缩,想要更多的压缩可添加有损压缩“aggressiveCompression”: true,自行参考说明文档配置参数。不用担心图片今天被imgbot压缩了明天还会再被压缩。点commite creat a file保存。

图8

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

图9

每次手动合并太麻烦了,下面介绍使用automerge-action自动合并。

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 }}&#​34;           MERGE_LABELS: "&#​34;           MERGE_METHOD: "squash&#​34;           MERGE_COMMIT_MESSAGE: "[ImgBot] Optimize images&#​34;           MERGE_FORKS: "false&#​34;           MERGE_RETRIES: "5&#​34;           MERGE_RETRY_SLEEP: "10000&#​34;           UPDATE_LABELS: "&#​34;           UPDATE_METHOD: "rebase&#​34;

其中 pascalgn/automerge-action@v0.13.1版本根据官方最新版自行修改。

在仓库设置中,配置MERGE_TOKEN 图11,

图11

其中的值为picgo配置时的token一样,如果之前没保存的话,可以再创建一个新的token填到这里。点击add secret保存。

至此 ,所有配置完成,使用picgo上传的图片,在imgbot自动压缩后会触发action自动合并。完全不再需要人工确认。

注:文中用户名和token为演示所用,已删除。