Bili Images Uploader

1139 字
6 分钟
Bili Images Uploader

Bili Images Uploader#

Bili Images Uploader - 将图片上传到B站图床并通过评论实现持久化存储

预言信#

CallingCard

截图预览#

功能特性#

  • 图片上传到B站图床(支持 JPEG、PNG、WebP、GIF、BMP)
  • 多图分组上传(每组最多9张图片)
  • 通过发送带图评论实现图片持久化
  • 上传历史记录管理
  • 图片URL有效性检查
  • Token认证保护+不存储敏感信息密钥确保安全
  • 支持Docker部署(多架构:amd64/arm64)

快速开始#

Docker部署(推荐)#

  • run:
Terminal window
# 拉取镜像
docker pull jacksen168/bili-images-uploader:latest
# 运行容器
docker run -d -p 8000:8000 \
-v ./config:/app/config \
-v ./data:/app/data \
jacksen168/bili-images-uploader:latest
  • docker compose:
version: '3.8'
services:
bili-images-uploader:
image: jacksen168/bili-images-uploader:latest
container_name: bili-images-uploader
ports:
- "8000:8000"
volumes:
- ./config:/app/config
- ./data:/app/data
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
network_mode: bridge
restart: unless-stopped

访问 http://localhost:8000 即可使用。

本地开发#

Terminal window
# 克隆项目
git clone https://github.com/jacksen168sub/bili-images-uploader.git
cd bili-images-uploader
# 安装依赖(使用uv)
cd backend
uv sync
# 启动服务
uvicorn backend.app.main:app --reload --host 0.0.0.0 --port 8000

配置说明#

首次启动#

首次启动时,控制台会输出自动生成的32位Token,请妥善保存。如果丢失了你需要删除配置文件并重启服务重新生成。

B站账号配置#

在Web界面中配置以下信息:

参数说明获取方式
CSRF TokenB站CSRF凭证登录B站后从Cookie中获取 bili_jct
SESSDATAB站会话凭证登录B站后从Cookie中获取 SESSDATA
OID评论目标IDB站动态或文章的ID

详细配置教程请参考 Wiki

使用方法#

  1. 登录: 输入Token进行身份验证
  2. 配置: 在配置页面填写B站账号信息
  3. 上传: 拖拽或点击选择图片,支持批量上传
  4. 管理: 查看上传历史,复制图片URL

技术栈#

  • 后端: Python 3.10+ / FastAPI / uvicorn
  • 前端: 原生 HTML/CSS/JavaScript (SPA)
  • 数据库: SQLite
  • 安全: SHA-256 Token哈希 + AES-CBC 敏感数据加密

API文档#

启动服务后访问 http://localhost:8000/docs 查看Swagger API文档。

主要接口#

方法路径说明
POST/api/authToken验证登录
GET/api/config获取B站配置
PUT/api/config更新B站配置
POST/api/upload上传图片
GET/api/history获取上传历史

常见问题#

Token忘记了怎么办?#

删除 config/config.ini 文件并重启服务,系统会重新生成Token。

图片上传失败?#

  1. 检查B站配置是否正确
  2. 确认SESSDATA未过期
  3. 检查图片格式和大小(限制10MB)

参考文章:#

有话说#

尝试过模仿P5的美术后,再此被P5的美术折服。不愧于天下第一之名,很多设计都模仿不来也没那技术力还原,即使模仿过来要么阅读体验糟糕;要么兼容性雪崩。我只能尽力而为大概的模仿一下了[摊手]

  • 对于按钮: 我分了普通的单色(灰色/白色)选中动效 和 主按钮的多色选中动效, 已经尽力还原了。在前端里按钮通常还会用来反馈状态,但在这套UI美术风格里,除了红黑白灰意外的其他任何颜色我觉得都会很不协调。因此就这样吧,如果你有更好的想法与技术力欢迎PR!
  • 对于消息提示: 我原本想直接还原游戏内的角色对话框的,动脑思考了是通过CSS、SVG还是图片还原? 但最后考虑到这里是网页。需要考虑兼容性还要兼顾直观的状态反馈,于是放弃了。
  • 对于这些标题: 我只还原了部分字体加个正方形背景框与不规则大小角度,需要的话其实还能更加还原的。
  • 对于列表: 我一开始是想做成倾斜,包括内容。后面写demo时就发现这东西空间利用与极低,PC端还好放到移动端直接就不用看了 空间利用率极低还极难阅读。然后看了眼游戏存档页那个电影票一样的列表…这…还是留在游戏里吧,我是没能力搞这玩意的了,也觉得同样对于多尺寸屏幕不友好。

使用条款#

当你使用本项目时及同意了本项目的使用条款: 使用条款

许可证#

MIT License

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Bili Images Uploader
https://blog.jacksen168.top/posts/bili-images-uploader/
作者
jacksen168
发布于
2026-03-01
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
jacksen168
Hello, I'm jacksen168.
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
19
分类
4
标签
46
总字数
21,887
运行时长
0
最后活动
0 天前
访问统计
当前在线
-
今日访问
-
今日浏览
-
昨日访问
-
昨日浏览
-
本月访问
-
累计访问
-

文章目录