V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
irocket
V2EX  ›  分享创造

特别想给 v 友介绍下这个与众不同的图床,结果发现 v 站关闭了 referer

  •  
  •   irocket · 159 天前 · 1504 次点击
    这是一个创建于 159 天前的主题,其中的信息可能已经有所发展或是发生改变。

    16 图床

    花了点心思设计了这个图床,起名 16 图床

    先放网址

    避免太长不看,先放网址

    111666.best

    闪光点

    用了一些时间写了这个图床,自认为有很多可圈可点的地方

    • 颜值担当,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 站了

    另外本图床计划长期维护,不会随便跑路。稳定性是最大的追求。

    15 条回复    2024-06-18 14:28:16 +08:00
    w4ngzhen
        1
    w4ngzhen  
       159 天前
    大佬好,请问这个图床纯用爱发电么?
    irocket
        2
    irocket  
    OP
       159 天前
    @w4ngzhen
    图床不打算挂广告,永远会保持这个免费状态
    未来也许会支持高级用户 SaaS CName 域名过来,但免费的功能不会变
    运营成本对我来说没多少,域名已经续费了 10 年,图床也不需要特别高配的服务器
    maymay5
        3
    maymay5  
       159 天前
    就在几天前,我发布了一条一样的,原因倒不是我想开发,而是有台闲置的服务器,并且续费了 3 年,想分享给社区,毕竟吃灰也是费钱,做的也是图床,结果一天就快给我把硬盘塞满了,最后我总结了一个结论

    * 用爱发电太赞了,但是一定要有限制,比如我强烈建议 OP 关闭 API ,允许游客不限次数上传,并且做到永久保存,就已经是大善人了
    aagaguai
        4
    aagaguai  
       159 天前
    我也在几个月前发布了
    irocket
        5
    irocket  
    OP
       159 天前
    @maymay5
    感谢 v 友提醒,不过有每日的频率和数量限制,不用担心储存占满这种初级问题
    至于内容违规的问题,图床不允许查看直链,只能嵌入网页查看,并且有拉黑 referer 的机制,每日有风险识别归类处理的定时任务
    mokeyjay
        6
    mokeyjay  
       159 天前
    有国内 CDN 吗?
    irocket
        7
    irocket  
    OP
       159 天前
    @aagaguai
    哈哈,图床是练手项目重灾区,也是很实用的基础设施
    不过这个图床是经过精心设计的,算是真的解决了很多痛点,现在用户量已经不错了
    irocket
        8
    irocket  
    OP
       159 天前
    @mokeyjay
    国内 CDN 成本不允许,这个图床主打一个使用体验和追求稳定,速度上没有什么特别优势,Cloudflare 免费版
    zoharSoul
        9
    zoharSoul  
       159 天前
    可以开源自建嘛
    OWLS
        10
    OWLS  
       159 天前
    经历过几次微博图床 XXX 之后,心有余悸。
    要么投靠外国大树,要么自建了。
    caola
        11
    caola  
       159 天前
    我也做过类似的,但只有一个 mysql 主库,文件 url 也是一串随机名称,只是用了 kvrocks (硬盘版 redis) 缓存对应的硬盘保存的目录路径和对应的文件信息。
    irocket
        12
    irocket  
    OP
       158 天前
    @zoharSoul 不可以,一是架构略微复杂,搭建非阉割版比较麻烦,二是不想承担不可控的程序滥用风险
    irocket
        13
    irocket  
    OP
       158 天前
    @OWLS 国外大树没毛病,但很多自建的用户坚持不了多久,而且可能因为各种原因丢失数据
    irocket
        14
    irocket  
    OP
       158 天前
    @caola 随机是好事,看一下我那个校验位的设计,比如前 x 位是校验位,根据某种排列哈希算法计算出来。在查询数据库前先检查校验,不对的话就不用查数据库了,防止有人用随机 url 回源 ddos 你
    OWLS
        15
    OWLS  
       158 天前
    @irocket 是的。所以怕丢数据的用户一般都选择付费。兄弟,你该商业化了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2720 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:23 · PVG 20:23 · LAX 04:23 · JFK 07:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.