docs: stage special-folder video media notes
This commit is contained in:
parent
60aa5146b4
commit
a52e2b92a4
@ -72,6 +72,9 @@
|
|||||||
- **背景**:软木板 / 黑板 / 白墙 / 牛皮纸,工具栏循环切换。
|
- **背景**:软木板 / 黑板 / 白墙 / 牛皮纸,工具栏循环切换。
|
||||||
- **上传**:按钮选择 / 拖入画布 / 剪贴板粘贴(`FileReader` 读 Base64 → 传服务器);
|
- **上传**:按钮选择 / 拖入画布 / 剪贴板粘贴(`FileReader` 读 Base64 → 传服务器);
|
||||||
满 10 张前端拦下、服务器 409 兜底。
|
满 10 张前端拦下、服务器 409 兜底。
|
||||||
|
- **特殊文件夹视频(规划)**:特殊文件夹(`#<文件夹名>`)将支持上传图片或视频;视频上传后先显示
|
||||||
|
「AI 正在压缩视频...」占位卡,服务器用 `ffmpeg` 压缩成 3M 带宽友好的 MP4 后自动变为
|
||||||
|
播放器。个人 `#photo` 暂不开放视频上传。不提供视频下载按钮。
|
||||||
- **历史**:撤销/重做 Ctrl+Z / Ctrl+Y,最多 30 步。
|
- **历史**:撤销/重做 Ctrl+Z / Ctrl+Y,最多 30 步。
|
||||||
- **持久化**:图片存服务器;**排版/装饰**操作后防抖 1s 自动写 `localStorage`,key
|
- **持久化**:图片存服务器;**排版/装饰**操作后防抖 1s 自动写 `localStorage`,key
|
||||||
`photo-wall-state`(`{ bgIndex, decorations, photoLayout }`,`photoLayout` 按服务器
|
`photo-wall-state`(`{ bgIndex, decorations, photoLayout }`,`photoLayout` 按服务器
|
||||||
@ -94,3 +97,7 @@
|
|||||||
(重编 Rust → 传二进制 → `restart_rust.sh` 重启),非 frontend-only。需在服务器
|
(重编 Rust → 传二进制 → `restart_rust.sh` 重启),非 frontend-only。需在服务器
|
||||||
`weather.env` 配 `JWT_SECRET`;首次上传自动建 `photo-wall/<用户>/`。**因 token 格式
|
`weather.env` 配 `JWT_SECRET`;首次上传自动建 `photo-wall/<用户>/`。**因 token 格式
|
||||||
从旧的时间戳哈希变为 JWT,上线后用户需重新登录一次。**
|
从旧的时间戳哈希变为 JWT,上线后用户需重新登录一次。**
|
||||||
|
|
||||||
|
特殊文件夹视频媒体见
|
||||||
|
[specs/2026-06-29-special-folder-video-media-design.md](superpowers/specs/2026-06-29-special-folder-video-media-design.md);
|
||||||
|
实现后依赖服务器安装 `ffmpeg`,后端改动需全量重部署。
|
||||||
|
|||||||
@ -260,6 +260,24 @@ frontend-only):重编 Rust → 传二进制 → `restart_rust.sh` 重启。
|
|||||||
- `PHOTO_DIR`(可选,默认 `photo-wall`,即 `/opt/internet-project/photo-wall/`)——
|
- `PHOTO_DIR`(可选,默认 `photo-wall`,即 `/opt/internet-project/photo-wall/`)——
|
||||||
图片按用户存到其下子目录,首次上传自动创建。
|
图片按用户存到其下子目录,首次上传自动创建。
|
||||||
|
|
||||||
|
**特殊文件夹视频媒体(规划,后端改动 + ffmpeg 运行时依赖):**
|
||||||
|
特殊文件夹支持视频上传后,服务器需要安装 `ffmpeg` 并确保 Rust 服务进程能在 `PATH` 中调用。
|
||||||
|
这次改动会新增 `/api/web/folder/{name}/media*` 接口和 multipart 上传,需**全量重部署**:
|
||||||
|
重编 Rust → 传二进制和前端 `dist/*` → `restart_rust.sh` 重启。
|
||||||
|
|
||||||
|
服务器安装检查:
|
||||||
|
```bash
|
||||||
|
ssh root@8.130.143.54 "ffmpeg -version | head -1"
|
||||||
|
```
|
||||||
|
|
||||||
|
如未安装,按服务器系统包管理器安装,例如 Debian/Ubuntu:
|
||||||
|
```bash
|
||||||
|
ssh root@8.130.143.54 "apt-get update && apt-get install -y ffmpeg"
|
||||||
|
```
|
||||||
|
|
||||||
|
转码目标固定为 720p 档、24fps、视频约 900kbps、音频 96kbps、MP4 faststart,
|
||||||
|
用于适配 3M 带宽播放。不提供视频下载入口。
|
||||||
|
|
||||||
**写博客(2026-06-27,后端改动):**
|
**写博客(2026-06-27,后端改动):**
|
||||||
个人博客(登录后默认页,`#post/<id>` 文章路由,详见 [blog.md](../../blog.md))引入了后端
|
个人博客(登录后默认页,`#post/<id>` 文章路由,详见 [blog.md](../../blog.md))引入了后端
|
||||||
改动(新增 `posts.rs` + 5 个 `/api/web/posts*` 接口、CORS 放行 PUT),需**全量重部署**
|
改动(新增 `posts.rs` + 5 个 `/api/web/posts*` 接口、CORS 放行 PUT),需**全量重部署**
|
||||||
|
|||||||
@ -151,3 +151,9 @@ trip2026 cc,carol
|
|||||||
- 注册表文件解析的容错(坏行跳过、重复文件夹名取首条还是报错)。
|
- 注册表文件解析的容错(坏行跳过、重复文件夹名取首条还是报错)。
|
||||||
- `totalBytes` 统计的性能(目录文件数大时遍历开销)——当前规模可接受,必要时缓存。
|
- `totalBytes` 统计的性能(目录文件数大时遍历开销)——当前规模可接受,必要时缓存。
|
||||||
- 管理员常量的位置与日后可配置化的留口。
|
- 管理员常量的位置与日后可配置化的留口。
|
||||||
|
|
||||||
|
## 10. 后续扩展:视频媒体
|
||||||
|
|
||||||
|
特殊文件夹的视频上传、异步转码、媒体接口和 `mediaLayout` 兼容策略由
|
||||||
|
[2026-06-29-special-folder-video-media-design.md](2026-06-29-special-folder-video-media-design.md)
|
||||||
|
接续设计。个人 `#photo` 不在该扩展范围内。
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user