docs(media): 补充服务端媒体检测与压缩说明
This commit is contained in:
parent
5fda6be8ec
commit
53d41fbcae
41
docs/media.md
Normal file
41
docs/media.md
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# 媒体压缩与检测
|
||||||
|
|
||||||
|
> App 端主压缩;服务端对用户路径做检测,对机器人路径强制压缩后写对象存储。
|
||||||
|
|
||||||
|
## 规格(与 App 对齐)
|
||||||
|
|
||||||
|
| 类型 | 最长边 | 体积参考 |
|
||||||
|
|------|--------|----------|
|
||||||
|
| 普通图片(广场/朋友圈等) | ≤ **1080** | ≤ 10 MiB |
|
||||||
|
| 视频 | ≤ **720** | ≤ 100 MiB |
|
||||||
|
| 头像 | ≤ **200×200** | ≤ 2 MiB |
|
||||||
|
|
||||||
|
## 检测点(用户上传)
|
||||||
|
|
||||||
|
| 时机 | 位置 | 行为 |
|
||||||
|
|------|------|------|
|
||||||
|
| 申请上传凭证 | `upload/logic.CreateCredential` → `checkDeclaredSize` | 按 `purpose` 校验声明 `size`;超限默认 **打 Warn 日志**,`media.user_reject=true` 时返回 `40005` |
|
||||||
|
| 广场发帖 | `square/logic.publish` → `checkPublishMedia` | 用客户端声明的图/视频宽高与 size 校验;同上 |
|
||||||
|
| 朋友圈发帖 | `moment/logic.publish` → `checkPublishMedia` | 同上 |
|
||||||
|
|
||||||
|
主压缩仍在 **App 上传前**;服务端不把用户文件再压一遍(除非开启拒收)。
|
||||||
|
|
||||||
|
## 机器人压缩点
|
||||||
|
|
||||||
|
| 时机 | 位置 | 行为 |
|
||||||
|
|------|------|------|
|
||||||
|
| RSS 配图 | `squarebot` Tick → `attachMedia` → `MediaCompressor.FetchImage` → `objectstore.Put` | 下载后压到 ≤1080,再写入 `perm/square/image/` |
|
||||||
|
| 机器人视频路径 | `PrepareVideoAsset` / `FetchVideo` | ffmpeg 压到 ≤720(部署需 `ffmpeg`) |
|
||||||
|
| 机器人头像 | `FetchAvatar` / `PrepareBotAvatar` | ≤200×200 |
|
||||||
|
|
||||||
|
开关:`media.bot_compress`(默认 true)。关闭时机器人帖仍发文字摘要+链接,不拉配图。
|
||||||
|
|
||||||
|
## 配置
|
||||||
|
|
||||||
|
见 `configs/config.yaml` 的 `media:` 与 `square_bot:`。
|
||||||
|
|
||||||
|
## 部署注意
|
||||||
|
|
||||||
|
- 视频压缩依赖主机 **`ffmpeg`**(`media.ffmpeg_path`,默认 `ffmpeg`)。
|
||||||
|
- 迁移:`migrations/0026_square_bot_rss.sql`(`source` / `source_url` / `expires_at` + `t_square_bot_links`)。
|
||||||
|
- Seed:`go run ./cmd/seed -config configs/config.yaml` 确保 `bot001@spark.bot`… 存在。
|
||||||
Loading…
Reference in New Issue
Block a user