16 图床
花了点心思设计了这个图床,起名 16 图床
先放网址
避免太长不看,先放网址
闪光点
用了一些时间写了这个图床,自认为有很多可圈可点的地方
- 颜值担当,UI 现代化,支持暗黑模式,设计感拉满
- 操作丝滑,跟吃了德芙一样
- 多重备份,分布式数据库,oss 冷备份,安全无忧
- 全格式支持,前端预压缩预转码,减少卡顿
- 校验位设计,超级耐打,天生就带着安全基因
- 尊重隐私,不用登录,支持撤回,使用浏览器 IndexedDB 数据库
无需登录
首先,图床是不用登录的,这在你需要临时传图的时候很方便
允许撤回且同步删除 CDN 缓存
- 很多图床是不登录就不能撤回,万一误传了很麻烦,但我们可以在不登陆的情况下撤回图片,因为本地 IndexedDB 记录了你的凭据( token )
- 有些图床删除了图片还能访问,是因为没有清除图片在 CDN 的缓存,我们的删除会同步清理对应的缓存记录
- token 在首次打开网页会储存到浏览器本地数据库,也支持你自己定制 token 的字符串值
简练的 API
图床上有介绍 API 调用方式,方便开发者调用
分布式数据库,皮实耐用
使用rqlite做分布式数据库,理论上即使图床所在某个机房被毁灭数据都在其他地方有实时备份
图片 URL 设计
- 图片 URL 为随机产生,不含有时间信息,对隐私保护有一定的效果
- 图片 URL 有签名校验位,能够减缓随机 url ddos 攻击产生额外数据库查询压力
支持复制为 markdown/bbcode/直链
点击就能复制,方便发帖使用
技术栈
- golang 主程序
- rqlite 分布式数据库
- cloudflare api ,用于清理缓存
- cloudflare waf ,针对程序做进一步的配合,增强 ddos 抵抗
- oss 冷备,b2/r2 ,这个只做冷备,不做热数据
- 数据库定时 snapshot ,图片文件每月离线备份
图床通过 referer 来阻止上传 NSFW 等违反 TOS 行为,发现 v 站关闭了 referer ,好可惜不能直接用到 v 站了
另外本图床计划长期维护,不会随便跑路。稳定性是最大的追求。