BTOA

写了一个网页端 B 站图床上传器

2024-08-08 22:32 · 图床 · 开源项目

在写文章的时候我会用到图床,但每种图床方案都有一点问题,我选择图床主要考虑的点有三个:安全、费用低、国内访问速度快。之前有用过一些公共的图床服务,但发现在国内网络环境下,图片加载的速度比较慢。也有尝试过使用对象存储和 CDN 服务自建图床,虽然对个人站点而言,每个月的费用并不是很高,但还是怕被刷流量。即便 CDN 有很多安全配置,仍然防不胜防,真正想要攻击的人总会找到缺口。后来综合考虑了一下,目前用的是 B 站图床方案,这个方案对我而言唯一的不足就是图片安全性未知,不过从目前的使用来看,并没有出现图片失效的情况。

B 站图床的逻辑是借助用户发布文章或动态的功能上传图片到 B 站一个公共的存储空间,因为和用户有关,所以上传图片需要登录账号获取相关的 cookie 信息。Github 上有一些开源的项目已经实现了这个功能,比如:picgo-plugin-bilibili,然而,目前我看到的这类项目,都是把数据存在本地,这对跨端共享不是特别友好。我真正需要的只是那一串图片 URL,有时候我在手机上想要获取这个 URL,还要把电脑打开,从插件中复制出来,就挺麻烦的。

为了解决跨端的问题,我写了一个网页端的 B 站图床上传工具,仓库在这里:bili-image-uploader,这个工具连接了后端数据库,每次上传成功都会把文件名存下来,通过前端展示所有图片的 URL。因为是个人使用,所以没有做多用户处理,目前所有账号上传的图片都是公开的。

现在唯一不太方便的是手机登录,因为用的二维码,手机需要把二维码截图下来进 B 站 APP 扫码。至于为什么用二维码登录,当然是简单方便啦,我查了 B 站的登录接口,除了二维码都需要做人机验证,还需要写另外的逻辑,太麻烦了。

这个是第三方整理的 B 站接口,有需要的朋友可以参考:bilibili-API-collect