还在为新浪图床限制外链苦恼?试试这个开源图床!

2019-05-04 13:06:24 +08:00
 aimerforreimu

前言

最近看到不少博客的图片挂掉了,各博主也用各种方法替换掉了图片。如果从开始使用外链的时候就可以让外链可以按照图片的状况自动进行替换,是不是就没有这些麻烦了。

于是就有了下面的想法:

按照这样的话,如果图片挂掉了,我们只需要从根节点将图片取出来,根据 hash 值重新上传到一个新的权重较高的图床,然后更新一下跳转链接就解决问题了, 这样链接的控制权就到我们手里了,完成了控制反转(大雾。如果图片一直挂,只能说明一个问题,你的图片有问题(黄色或者暴力)抱歉我不打算为这种图片和这样的上传者进行服务。

图片链接类似于下面的样子,可以点击一下试试

https://test.demo-1s.com/dispatch/b7a36157422a51122998a1b04603eca0

动手

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

感谢为我提建议的 github 的朋友,想法很不错。

可以看一下目前的样子,另外项目地址是 https://github.com/aimerforreimu/auxpi

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

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

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

另外附上可以站点设置

个人感悟

楼主是一个学机械的大学生,目前大三,准备考软件或者计算机的研究生,这个东西算是对自己学习 Golang 的一个总结吧。前端用的 Vue+Element-ui ,后端用的是 Golang 进行的开发,感谢 vue-element-admin 这个后台框架,真的非常棒。一个人写所有的东西真的很累,但是收获也很多。以后开发的速度可能会比较慢了,因为要复习考研了,有空的话我会改一下 bug。希望能考上一个自己心仪的学校。

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

Github: https://github.com/aimerforreimu/auxpi

11541 次点击
所在节点    分享创造
61 条回复
ccino
2019-05-05 13:22:34 +08:00
@Littmean #40 不错,还有这么有趣的图床?
aimerforreimu
2019-05-05 13:44:24 +08:00
@Littmean 我是个学生,暂时没考虑商业化,这个算我学习 Go 过程中交的一个作业
aimerforreimu
2019-05-05 13:45:11 +08:00
@Panway 哈哈,感谢
aimerforreimu
2019-05-05 14:31:59 +08:00
@chinesestudio 好主意,有机会加上 onedrive 和 gdrive 的定时备份,其实一直是多用户的
X-Force
2019-05-05 18:10:13 +08:00
非常棒的项目!其实除了公共图床,变化一下还能有更多的用处,比如对私有搭建的多台 VPS,一旦某台触及流量用完的阈值,就分发到下台 VPS 去。或者根据用户地理位置,分发到不同地区的 VPS ……
Acirno
2019-05-05 18:12:07 +08:00
希望能支持截图或者复制图片后直接 CTRL+V 粘贴上传
aimerforreimu
2019-05-05 18:14:26 +08:00
@Acirno 收到,已经加入 TODO 列表中
CononYc
2019-05-06 16:39:01 +08:00
支持,已 Star
feiandxs
2019-05-06 17:09:24 +08:00
这个根节点的概念其实还是等于我有个主控空间,其他的那些图床可以当 CDN 来处理了。

这个概念挺好的,但本质上,我如果在 A 图床的图片失效了,即便后续在 B 节点更新了,但如果我其他地方有引用这张图的话……

哦,抱歉我没看上面流程图,其实访问还是从自己这边先预先走的。
aimerforreimu
2019-05-06 17:15:34 +08:00
@feiandxs 相当于控制反转了,现在控制权在自己手里,如果想要手动改也是可以的,后面会有相应的 crud 操作
feiandxs
2019-05-06 17:42:50 +08:00
@aimerforreimu 我想到了一个基于 nginx+redis 的方案,其实原理应该差不多。但控制权放在自己手里是这套的精华。

但我最想说的,好像七牛他们也不贵= =###
aimerforreimu
2019-05-06 18:12:52 +08:00
@feiandxs 流量大了就贵了,一个月几百的 CDN 费用有时候还是蛮高的,另外后面可以考虑加入 OOS 进行图片回源
feiandxs
2019-05-07 15:41:15 +08:00
@aimerforreimu

其实几百的 CDN 费用也不算贵,而且这个量级对个人来说已经大到可怕了,对公司来说,反而这点钱又不是事。
而且不论个人还是公司,有这个级别流量几百块怎么也收得回来了哈哈哈。

但这个东西对个人确实还是有意义,蚊子肉也是肉,能不花钱就不花钱也是。。
Musir
2019-05-07 20:52:05 +08:00
这个下载才慢哦
Musir
2019-05-07 22:48:07 +08:00
以安装失败而告退
uc2664360
2019-06-17 19:48:21 +08:00
我不知道我理解错没,在这个图床上传的图片,拿到一个地址比如 http://abc.com/dispatch/hash
然后每次访问这个资源都会先走图床服务器,然后由服务器进行判断是否防盗链,被墙了就按照权重使用下一个图床
这么做的话,所有的请求都要先到图床服务器拿真实的资源链接,也就是图床服务器必须不能挂。
如果访问量低还好,访问量上去了是不是对图床服务器的并发能力有要求了呀。
aimerforreimu
2019-06-18 20:02:25 +08:00
有缓存的,防盗链当然不可能每次都检查呀
chinesestudio
2019-09-07 20:48:42 +08:00
大佬 还更新不 很多小问题 不更新的话可否付费私人定制
zkdfbb
2019-09-09 11:14:20 +08:00
chinesestudio
2019-09-09 11:53:12 +08:00
@zkdfbb 我是用来给论坛做图床服务 不是用别人的 谢谢啦 这个和 superbed 功能差不多 改改就成

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/560833

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX