还在为掘金 CDN开启防盗链而苦恼?试试这个开源图床吧~

475 阅读2分钟

前言

刚才看到掘金将 CDN 加上了防盗链,估计有一大部分掘友已经要开始修改自己的网站上面的图片地址了😂

虽然有各种小工具可以帮助大家解决这个问题,但是还是要写规则去替换链接的。总有些麻烦。

于是我有了如下图所示的想法:

假设现在有 A,B,C,D 个可以储存的图床,将他们按照权重(比如图片速度、稳定性)进行排名,排名结果是:B,A,D,C

首次上传我会上传到根节点 (根节点可以选择:github、gitee、本地、flickr、imgur ,这些地方不会丢失图片) ,并且会异步上传到 B 图床,因为 B 的权重排名是最高的。同时系统会自动检测图片在 B 图床的状态,如果检测到 B 图床上面的图片有了防盗链或者失效了,系统会从根节点中取出这张图片,上传到 A 图床,一次类推,直到回源为止

流程图

按照这样的话,如果图片挂掉了,我们只需要从根节点将图片取出来,根据 hash 值重新上传到一个新的权重较高的图床,然后更新一下跳转链接就解决问题了, 这样链接的控制权就到我们手里了,完成了控制反转(大雾

动手

那就别说了,动手吧,于是 auxpi 图床就诞生了,它集合了十几个常见的图床来做一个跳转,目前大概支持 19 个图床,包括国外的一部分图床。另外支持异地根节点,包括github,gitee,imgur,同时还支持使用代理链接去代理一些具有防盗链的图片,鉴黄和 OOS 对接正在开发中。

大家可以试试下面的几个链接,体验一下工作流程:

首页有几个可视化的图标,方便分析(装x)

首页

支持分发图片,返回的链接是 http://你的网站/dispatch/{hash} 的形式,会自动跳转到权重较高的图床,并且分发是后台异步分发(感谢 Golang 的协程,用起来太爽了)

分发

支持拖拽对首页的菜单进行排序和开关控制

拖拽

另外附上可以站点设置

设置

设置

项目地址

最后是项目地址,欢迎安装使用:

Github: github.com/aimerforrei…

如果有问题,欢迎反馈~

附言

如果有精力,我会把我开发 auxpi 的过程写个教程,不知道各位有没有兴趣?