feat: Admin 媒体库列表、删除与同步索引
SSR /admin/media 复用 ListMedia/DeleteMedia,并支持按 ID 批量删与扫盘回填。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -175,11 +175,11 @@
|
||||
|
||||
## M. 媒体与存储
|
||||
|
||||
- [ ] 本地 uploads 或 S3 兼容存储(可热切换配置)
|
||||
- [ ] 头像 / 帖图 / 站点品牌资源分类
|
||||
- [ ] 图片展示可选 WebP 转换(`/media/thumb/...`)
|
||||
- [ ] 管理后台媒体列表与删除
|
||||
- [ ] 媒体索引表同步
|
||||
- [ ] 本地 uploads 或 S3 兼容存储(可热切换配置)— 后端已支持;Admin 热切换 UI 未迁
|
||||
- [x] 头像 / 帖图 / 站点品牌资源分类 — 上传路径 + Admin 分类筛选
|
||||
- [ ] 图片展示可选 WebP 转换(`/media/thumb/...`)— 路由已有;全站默认策略未产品化
|
||||
- [x] 管理后台媒体列表与删除 — SSR `/admin/media`
|
||||
- [x] 媒体索引表同步 — 启动扫盘 + Admin「同步索引」
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -54,10 +54,11 @@
|
||||
| `/admin/reports` | 举报处理 | 已迁 |
|
||||
| `/admin/users` | 用户列表、禁言、认证、调积分 | 已迁 |
|
||||
| `/admin/badges` | 徽章定义 CRUD、限定颁发/收回 | 已迁 |
|
||||
| `/admin/media` | 媒体库分类浏览、删除、同步索引 | 已迁 |
|
||||
| `/admin/trash` | 帖回收站 | 已迁 |
|
||||
| `/admin/login` | 重定向前台登录 | 已迁 |
|
||||
|
||||
未迁(原 SPA):media / 完整 Limits 等。
|
||||
未迁(原 SPA):完整 Limits / OIDC·Gitea·存储热切换 Admin 等。
|
||||
|
||||
---
|
||||
|
||||
@@ -197,6 +198,7 @@
|
||||
| Reports | 处理动作:dismiss / resolve / reject_post / reject_comment — SSR `/admin/reports` |
|
||||
| Users | 搜索;禁言;认证;调积分 — SSR `/admin/users`(设等级 / 授徽章挂在徽章页) |
|
||||
| Badges | 定义自动/限定徽章;颁发/收回限定 — SSR `/admin/badges` |
|
||||
| Media | 分类浏览;单删/批量删;同步索引 — SSR `/admin/media` |
|
||||
| Media | 分类浏览;批量删 |
|
||||
| Settings | Tab:论坛限制、侧栏组件、伪静态、邮件、OIDC+客户端、Gitea、存储、品牌、敏感词、备份 — SSR `/admin/settings` 已迁品牌/限流/侧栏/敏感词/邮件/SQLite 备份(OIDC/Gitea/存储/伪静态未迁) |
|
||||
|
||||
|
||||
@@ -12,15 +12,15 @@
|
||||
|
||||
| 项 | 值 |
|
||||
|----|-----|
|
||||
| **上一刀** | Admin `/admin/badges`(定义 CRUD + 限定颁发/收回) |
|
||||
| **下一刀** | **Admin `/admin/media`**(媒体列表 / 删除) |
|
||||
| **上一刀** | Admin `/admin/media`(列表 / 删除 / 同步索引) |
|
||||
| **下一刀** | **等级/自动徽章 UI** 或 **防刷分成**(`02` §H P2;开刀前确认偏好) |
|
||||
| **工作区** | 应干净;有未提交改动时先处理再开新刀 |
|
||||
|
||||
---
|
||||
|
||||
## 一句话状态
|
||||
|
||||
论坛核心闭环(安装、认证、Feed、五种帖类型、评论、私信、友链、审核、回收站、基础设置、备份)**已迁完**。Admin 用户与徽章已齐;余量主要是媒体、成长体系、OIDC/存储产品化与体验打磨。
|
||||
论坛核心闭环 + Admin 用户/徽章/媒体 **已迁完**。余量主要是成长体系与防刷、OIDC/存储产品化与体验打磨。
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
@@ -59,14 +59,12 @@ flowchart LR
|
||||
| dashboard / boards / moderation / reports / trash | 已迁 |
|
||||
| settings:品牌、限流、敏感词、SMTP、侧栏、SQLite 备份 | 已迁 |
|
||||
| friend-links / pages | 已迁 |
|
||||
| **users**(禁言 / 认证 / 调积分) | **已迁** |
|
||||
| **badges**(定义 CRUD + 限定颁发/收回) | **已迁** |
|
||||
| **media** | **未迁** |
|
||||
| **users / badges / media** | **已迁** |
|
||||
| settings:OIDC / Gitea / 存储 / 伪静态 Tab | **未迁** |
|
||||
|
||||
### 近期提交(摘)
|
||||
|
||||
`lottery` → Admin users → **Admin badges**
|
||||
Admin users → badges → **media**
|
||||
|
||||
---
|
||||
|
||||
@@ -77,15 +75,15 @@ flowchart LR
|
||||
- 发评路径挂 `RateLimiter` `comment` 动作(服务层已有键,web 未挂)
|
||||
- Logo/Favicon/OG 上传、头像裁剪等声明为未做的边角
|
||||
|
||||
### P1 — 推荐刀序(服务层多半已齐)
|
||||
### P1 — Admin 核心
|
||||
|
||||
1. ~~Admin 用户~~ ✓
|
||||
2. ~~Admin 徽章~~ ✓
|
||||
3. **Admin 媒体** ← 当前指针
|
||||
3. ~~Admin 媒体~~ ✓
|
||||
|
||||
### P2 — 成长与防刷
|
||||
### P2 — 成长与防刷 ← 当前指针候选
|
||||
|
||||
- Exp → Lv1–10、自动徽章调度 UI、短龄同 IP 互刷拒绝分成(`02` §H)
|
||||
- Exp → Lv1–10 设定 UI、自动徽章调度说明、短龄同 IP 互刷拒绝分成(`02` §H)
|
||||
|
||||
### P3 — 体验 / 编辑器(可砍或长期)
|
||||
|
||||
@@ -98,7 +96,7 @@ flowchart LR
|
||||
|
||||
- K:Gitea `/projects`
|
||||
- L:OIDC 产品化 Admin CRUD
|
||||
- M:S3 热切换、WebP thumb 全链路
|
||||
- M:S3 热切换、WebP thumb 全链路产品化
|
||||
|
||||
---
|
||||
|
||||
@@ -106,39 +104,39 @@ flowchart LR
|
||||
|
||||
| 序 | 刀 | 产出 |
|
||||
|----|----|------|
|
||||
| ✓ | 五种帖类型 + 备份/复检 + §O 勾选 | 核心闭环 |
|
||||
| ✓ | 本文 `09` | 可查阅进度 |
|
||||
| ✓ | Admin `/admin/users` | 禁言/认证/调积分 |
|
||||
| ✓ | Admin `/admin/badges` | 徽章 CRUD + 授予 |
|
||||
| → | Admin `/admin/media` | 媒体列表删除 |
|
||||
| 5 | 等级/自动徽章 **或** 防刷分成 | 按当时偏好 |
|
||||
| ✓ | 五种帖类型 + 备份/复检 + §O | 核心闭环 |
|
||||
| ✓ | Admin users / badges / media | Admin P1 |
|
||||
| → | 等级设定 **或** 防刷分成 | 需偏好 |
|
||||
| … | P3 / 后置 | 需明确点名再开 |
|
||||
|
||||
---
|
||||
|
||||
## 下一刀实现提纲:Admin 媒体
|
||||
## 下一刀实现提纲:P2 候选
|
||||
|
||||
> 确认「继续」后实现媒体库列表与删除;对齐既有上传/存储服务。
|
||||
> 「继续」前请点名:**等级/Exp UI**、**防刷分成**,或其它(OIDC/伪静态等)。
|
||||
|
||||
### 范围(草案)
|
||||
### A. 等级
|
||||
|
||||
- `GET /admin/media`:按时间分页列表(缩略图 / 路径 / 引用粗览)
|
||||
- `POST /admin/media/:id/delete`:删库文件 + 记录
|
||||
- 回写 `02` / `06`;指针 → 成长或按偏好
|
||||
- Admin 设用户 Exp/Lv(`SetUserLevel` 已有)
|
||||
- 公开页等级展示对齐
|
||||
|
||||
### 不做
|
||||
### B. 防刷分成
|
||||
|
||||
S3 热切换产品化、全站未引用扫描清理器。
|
||||
- 短龄同 IP 互刷拒绝创作分成(`02` §H)
|
||||
|
||||
---
|
||||
|
||||
## 已完成:Admin 媒体
|
||||
|
||||
见 [plans/admin-media.md](plans/admin-media.md)。
|
||||
|
||||
## 已完成:Admin 徽章
|
||||
|
||||
见 [plans/admin-badges.md](plans/admin-badges.md);路由 `/admin/badges` + award / revoke。
|
||||
见 [plans/admin-badges.md](plans/admin-badges.md)。
|
||||
|
||||
## 已完成:Admin 用户管理
|
||||
|
||||
见 [plans/admin-users.md](plans/admin-users.md);路由 `/admin/users` + ban / verify / points。
|
||||
见 [plans/admin-users.md](plans/admin-users.md)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
21
docs/rebuild-spec/plans/admin-media.md
Normal file
21
docs/rebuild-spec/plans/admin-media.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# Admin 媒体库(SSR)— 实现计划
|
||||
|
||||
> 状态:已完成(SSR `/admin/media`)
|
||||
> 分支:`rebuild/gitea-ssr`
|
||||
|
||||
## 范围
|
||||
|
||||
| 能力 | 服务 | 路由 |
|
||||
|------|------|------|
|
||||
| 分类/搜索/分页列表 | `UploadStore.ListMedia` | `GET /admin/media` |
|
||||
| 单删 | `DeleteMediaByIDs` | `POST /admin/media/:id/delete` |
|
||||
| 批量删 | 同上 | `POST /admin/media/delete` |
|
||||
| 同步索引 | `SyncMediaIndex` | `POST /admin/media/sync` |
|
||||
|
||||
## 不做
|
||||
|
||||
S3 热切换 Admin、全站未引用扫描清理、WebP 产品化默认策略。
|
||||
|
||||
## 验证
|
||||
|
||||
`build.bat`;冒烟:写入 uploads → 同步索引 → 列表可见 → 删除。
|
||||
Reference in New Issue
Block a user