用Golang + React 写了一个图床,无需登录,允许删除,支持token,支持API,分布式数据库

先放网址

https://111666.best/

闪光点

用了两个周末写了这个图床,自认为有很多可圈可点的地方

无需登录

首先,图床是不用登录的,这在你需要临时传图的时候很方便

允许删除且同步删除CDN缓存

  • 很多图床是不登录就不能删图,万一误传了很麻烦,但我们可以在不登陆的情况下删除图片,因为本地记录了你的凭据(token)
  • 有些图床删除了图片还能访问,是因为没有清除图片在CDN的缓存,我们的删除会同步清理对应的缓存记录
  • token在首次打开网页会储存到浏览器本地数据库,也支持你自己定制token的字符串值

所有图片默认CDN云端缓存

所以即使网址遭受攻击,图片仍然可以从CDN缓存拉取

简练的API

图床上有介绍API调用方式,方便开发者调用
并且图床有对NodeSeek开启CORS跨站权限

分布式数据库,皮实耐用

使用rqlite做分布式数据库,理论上即使图床所在某个机房被毁灭数据都在其他地方有实时备份

图片URL设计

  • 图片URL为随机产生,不含有时间信息,对隐私保护有一定的效果
  • 图片URL有签名校验位,能够减缓随机url ddos攻击产生额外数据库查询压力

支持复制为markdown/bbcode/直链

点击就能复制,方便发帖使用

Golang的运行效率高

再编一个优点出来,go的运行效率的确比大部分语言都高,某种意义上抗ddos能力高一些?

技术栈

  • Golang
  • Rqlite
  • React

另外界面的一些元素借鉴了之前在论坛看到的某位兄弟的设计,一时找不到原帖子了

加载速度测试

bug反馈

可能有bug,欢迎各位反馈

另外本图床计划长期维护,不会随便跑路

点赞
  1. rocket说道:

    @qfdk #34

    我们的项目包括:

    • golang主程序
    • rqlite分布式数据库
    • cloudflare api,用于清理缓存
    • cloudflare waf,针对程序做进一步的配合,增强ddos抵抗
    • oss冷备,b2/r2,这个只做冷备,不做热数据
    • 数据库定时snapshot
    • 图片文件每月离线备份

发表回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮