Skip to content

Commit 64c99b0

Browse files
committed
docs: 添加图床功能说明和API更新
- **图床** — 图片上传自动压缩为 WebP + 生成缩略图,返回 URL/Markdown 链接,支持防盗链,兼容 PicGo - **API Token** — 更新以支持图床认证 - 增加图床相关配置项,包括最大上传大小、压缩质量、CDN 基础 URL 和防盗链白名单 - 更新注册页面说明,增加多步骤向导和头像设置 - 更新用户设置页面说明,增加头像管理 - 增加图床 API 端点和描述 - 更新业务逻辑说明,增加图床功能 - 增加图床功能的项目进度说明 也支持 `X-API-Token: username:token` 头认证(用于 PicGo 等客户端)。
1 parent d13c9e5 commit 64c99b0

File tree

1 file changed

+39
-7
lines changed

1 file changed

+39
-7
lines changed

README.md

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# MediaDrive Pro
22

3-
基于对象存储的私有云网盘系统,提供 Web UI、WebDAV、HTTP API、文件分享等功能。
3+
基于对象存储的私有云网盘系统,提供 Web UI、WebDAV、HTTP API、图床、文件分享等功能。
44

55
## 功能
66

@@ -9,8 +9,9 @@
99
- **分片上传** — 大文件自动分片,断点续传,并行上传
1010
- **文件预览** — 图片/视频/音频/PDF/文本 在线预览
1111
- **文件分享** — 生成分享链接,支持密码保护、过期时间、下载次数限制
12+
- **图床** — 图片上传自动压缩为 WebP + 生成缩略图,返回 URL/Markdown 链接,支持防盗链,兼容 PicGo
1213
- **WebDAV** — 挂载为本地磁盘(Windows/macOS/Linux/移动端)
13-
- **API Token** — 创建独立 Token 用于 WebDAV 或第三方集成
14+
- **API Token** — 创建独立 Token 用于 WebDAV、图床或第三方集成
1415
- **管理面板** — 管理员查看所有用户及存储使用
1516

1617
## 技术栈
@@ -99,6 +100,12 @@ access_token_ttl_secs = 1800
99100
[webdav]
100101
enabled = true
101102
prefix = "/dav"
103+
104+
[image]
105+
max_upload_size = 20971520 # 20MB
106+
compression_quality = 80 # WebP 压缩质量 (1-100)
107+
cdn_base_url = "" # 留空则使用服务器自身地址
108+
allowed_referers = [] # 防盗链白名单,留空则不限制
102109
```
103110

104111
支持环境变量覆盖(`MDP_` 前缀):
@@ -114,11 +121,12 @@ Web 界面包含以下页面:
114121
| 页面 | 路径 | 说明 |
115122
|---|---|---|
116123
| 登录 | `/login` | 用户名 + 密码登录 |
117-
| 注册 | `/register` | 创建新账号 |
124+
| 注册 | `/register` | 创建新账号(多步骤向导 + 头像设置) |
118125
| 文件浏览器 | `/files` | 文件/文件夹管理主页面 |
119126
| 分享管理 | `/shares` | 查看和管理所有分享链接 |
127+
| 图床 | `/images` | 图片上传/管理,一键复制 URL/Markdown |
120128
| Token 管理 | `/tokens` | 创建和管理 API Token |
121-
| 用户设置 | `/settings` | 个人信息和存储空间用量 |
129+
| 用户设置 | `/settings` | 个人信息、头像和存储空间用量 |
122130
| 管理员面板 | `/admin` | 用户列表(仅管理员) |
123131
| 公开分享 | `/s/:token` | 访客查看/下载分享文件 |
124132

@@ -132,14 +140,16 @@ Web 界面包含以下页面:
132140

133141
## API
134142

135-
所有接口以 `/api/v1/` 为前缀,需 Bearer Token 认证(除注册/登录外)。
143+
所有接口以 `/api/v1/` 为前缀,需 Bearer Token 认证(除注册/登录外)。也支持 `X-API-Token: username:token` 头认证(用于 PicGo 等客户端)。
136144

137145
### 认证
138146

139147
```
140148
POST /api/v1/auth/register — 注册
141149
POST /api/v1/auth/login — 登录
142150
GET /api/v1/auth/me — 当前用户信息
151+
POST /api/v1/auth/avatar — 上传头像
152+
GET /api/v1/users/:id/avatar — 获取用户头像
143153
```
144154

145155
### 文件
@@ -193,6 +203,18 @@ GET /api/v1/tokens — 列出所有 Token
193203
DELETE /api/v1/tokens/:id — 删除 Token
194204
```
195205

206+
### 图床
207+
208+
```
209+
POST /api/v1/images — 上传图片(自动压缩为 WebP + 生成缩略图)
210+
GET /api/v1/images — 列出已上传图片
211+
DELETE /api/v1/images/:id — 删除图片
212+
GET /img/:hash.webp — 公开访问图片(可配置防盗链)
213+
GET /img/thumb/:hash.webp — 缩略图
214+
```
215+
216+
上传响应包含 `url``thumb_url``markdown` 字段,方便直接使用。
217+
196218
### 管理员
197219

198220
```
@@ -232,6 +254,16 @@ curl -X POST http://localhost:8080/api/v1/files \
232254
# 文件列表
233255
curl http://localhost:8080/api/v1/files \
234256
-H "Authorization: Bearer <token>"
257+
258+
# 上传图片到图床(使用 JWT)
259+
curl -X POST http://localhost:8080/api/v1/images \
260+
-H "Authorization: Bearer <token>" \
261+
-F "image=@photo.jpg"
262+
263+
# 上传图片到图床(使用 API Token,适用于 PicGo 等客户端)
264+
curl -X POST http://localhost:8080/api/v1/images \
265+
-H "X-API-Token: demo:<api_token>" \
266+
-F "image=@photo.jpg"
235267
```
236268

237269
## 项目结构
@@ -245,7 +277,7 @@ MediaDrivePro/
245277
│ ├── common/ # 配置、错误类型、响应格式
246278
│ ├── auth/ # JWT、密码哈希、认证中间件
247279
│ ├── storage/ # OpenDAL 存储封装
248-
│ ├── core/ # 业务逻辑(用户/文件/目录/分享/Token/分片上传)
280+
│ ├── core/ # 业务逻辑(用户/文件/目录/分享/Token/图床/分片上传)
249281
│ ├── api/ # HTTP 路由和处理器
250282
│ └── webdav/ # WebDAV 协议实现(dav-server + Basic Auth)
251283
└── web/ # 前端(React + Vite + TypeScript)
@@ -265,7 +297,7 @@ MediaDrivePro/
265297
- [x] V0.2 — 网盘完善(重命名/移动、搜索排序、分享、存储配额)
266298
- [x] V0.3 — WebDAV + 分片上传 + API Token
267299
- [x] V1.0 — Web UI
268-
- [ ] V1.1 — 图床
300+
- [x] V1.1 — 图床(WebP 压缩 + 缩略图 + 防盗链 + PicGo 兼容)
269301
- [ ] V2.0 — 视频播放 + 转码 + 媒体库
270302
- [ ] V3.0 — 同步观影室
271303

0 commit comments

Comments
 (0)