Add offline transfer history and tighten anonymous access

This commit is contained in:
yoyuzh
2026-04-02 16:30:04 +08:00
parent 97edc4cc32
commit 2cdda3c305
13 changed files with 626 additions and 82 deletions

View File

@@ -217,7 +217,8 @@
说明:
- 创建快传会话需要发送端登录
- 在线快传会话允许未登录用户创建
- 离线快传会话仍要求发送端登录
- 请求体必须区分 `mode`
- `ONLINE`: 在线快传15 分钟有效,只能被接收一次
- `OFFLINE`: 离线快传7 天有效,文件会落到站点存储并可被重复接收
@@ -230,6 +231,7 @@
说明:
- 接收端通过 6 位取件码查找会话
- 未登录用户只能查找在线快传
### 4.3 加入会话
@@ -239,6 +241,7 @@
- 在线快传会占用一次性会话
- 离线快传返回可下载文件清单,不需要建立 P2P 通道
- 未登录用户只能加入在线快传
### 4.4 信令交换
@@ -252,7 +255,17 @@
- 实际文件通过浏览器 DataChannel 进行 P2P 传输
- 该组接口仅用于 `ONLINE` 模式
### 4.5 上传离线快传文件
### 4.5 查看我的离线快传记录
`GET /api/transfer/sessions/offline/mine`
说明:
- 需要登录
- 返回当前用户未过期的离线快传会话列表
- 每个会话包含取件码、有效期和文件清单,前端可据此重新展示二维码与分享链接
### 4.6 上传离线快传文件
`POST /api/transfer/sessions/{sessionId}/files/{fileId}/content`
@@ -260,7 +273,7 @@
- 需要发送端登录
- 发送端把离线文件内容上传到站点存储
- 线上环境会把离线文件落到 OSS
- 线上环境会把离线文件落到对象存储
### 4.6 下载离线快传文件
@@ -268,7 +281,7 @@
说明:
- 公开接口
- 需要登录
- 离线文件在有效期内可以被重复下载
### 4.7 存入网盘

View File

@@ -163,6 +163,8 @@
- 多文件或文件夹可走 ZIP 下载
- 在线快传是一次性浏览器 P2P 传输,首个接收者进入后即占用该会话
- 离线快传会把文件内容落到站点存储,线上环境使用多吉云对象存储,默认保留 7 天并支持重复接收
- 登录页提供直达快传入口;匿名用户只允许创建在线快传并接收在线快传,离线快传相关操作仍要求登录
- 已登录发送端可在快传页查看自己未过期的离线快传记录,并重新打开取件码 / 二维码 / 分享链接详情弹层
### 3.4 管理台模块
@@ -229,7 +231,7 @@
### 4.5 快传流程
1. 发送端登录后创建快传会话
1. 发送端可在登录后或未登录状态下创建在线快传会话
2. 若是在线模式,后端返回 `sessionId + pickupCode` 并保留 15 分钟的一次性会话
3. 接收端通过取件码或分享链接加入在线会话
4. 双方通过 `/api/transfer/.../signals` 交换 offer / answer / ice
@@ -246,6 +248,12 @@
6. 接收端可直接下载离线文件,也可登录后存入网盘
7. 文件在有效期内不会因一次接收而被删除,过期后由后端清理任务自动销毁
补充说明:
- 离线快传的创建、查找、加入和下载都要求登录
- 匿名用户进入 `/transfer` 时默认落在发送页,但仅会看到在线模式
- 登录用户可通过 `/api/transfer/sessions/offline/mine` 拉取自己仍在有效期内的离线快传会话,用于在快传页回看历史取件信息
### 4.7 管理员改密流程
1. 管理台调用 `PUT /api/admin/users/{userId}/password`