Files
FileHost/docs-site/guide/changelog.md
T
tianmo a2289a564f feat: 完善媒体管理与低内存环境稳定性
- 统一图片、视频和文件的上传策略,支持文件大小、格式和限流配置
- 新上传的图片、视频和文件默认保存到本地磁盘,并支持修改默认存储后端
- 图库、视频库和文件库新增搜索与批量删除功能
- 更新视频与文件 API 文档,并完善服务端扩展名和内容类型校验
- 完善备份恢复统计,分别展示媒体记录和存储对象进度
- 完善用户级清空存储流程,清理当前用户的媒体、任务和缓存
- 修复清空存储后最近任务残留以及媒体逻辑遗漏视频和文件的问题
- 增加站点同步异常恢复和超时兜底处理
- 缩略图 FFmpeg 限制为单线程并增加 10 秒超时保护
- 低内存服务器开启 HLS 转码时显示风险提示
- 完善 m3u8 临时合并文件的下载后、到期和启动时清理
- 更新中英文更新日志,并将版本号提升至 1.5.0
2026-10-17 16:34:38 +08:00

252 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 更新日志
PicHost 版本历史与重要变更说明。完整记录亦见仓库根目录 [CHANGELOG.md](https://github.com/O96u/PicHost/blob/main/CHANGELOG.md)。
---
## [1.5.0] — 2026-10-17
### 新增
- 图库、视频库和文件库支持搜索与批量删除
- 所有媒体统一上传策略,支持大小、格式和限流配置,并可切换默认存储后端
- 高危清空存储操作增加文字二次确认,仅清理当前用户数据
- 低内存服务器在开启 HLS 转码时显示风险提示
### 改进
- 备份恢复分别展示「媒体记录」和「存储对象」进度
- 视频上传仅允许常见完整容器格式,并增加服务端校验
- 缩略图 FFmpeg 限制为单线程并增加超时保护
- m3u8 临时合并文件支持下载后、到期和启动时自动清理
### 修复
- 修复清空存储后最近任务残留以及媒体功能遗漏视频和文件的问题
- 修复站点同步异常后的兜底恢复流程
## [1.4.4] — 2026-10-10
### 修复
- Cap 登录验证支持 hashwx,并继续兼容旧的 SHA-256 site key
## [1.4.3] — 2026-10-09
### 新增
- **Telegram 存储后端**:频道/群组存图,直链仍经 PicHost;可选 API 代理
## [1.4.2] — 2026-09-23
### 修复
- 图库批量打标与上传 Token 鉴权(含 `API_UPLOAD_TOKEN` 兼容)
### 改进
- API 页单 Token;上传 `tagNames`;标签管理排序与移动端布局;API 文档表格式
## [1.4.1] — 2026-09-16
### 新增
- **上传策略(设置 → 基础)**:大小、格式、限流、保留原图;环境变量可覆盖
- **上传 API**:可选 `tagNames` 按名称打标(自动创建或复用)
### 改进
- 登录限流可配置;设置页布局调整
## [1.4.0] — 2026-09-09
### 新增
- **标签**:每用户彩色标签;设置页管理;上传/图库批量打标;图库 OR / AND 筛选
- **操作日志**:登录、删除、设置、标签等操作;日期与用户筛选
- **API**:标签与打标接口;上传 `tagIds`;列表/统计标签筛选
### 文档
- 截图与 README 同步 v1.4 界面
## [1.3.0] — 2026-09-07
### 新增
- **站点备份 / 恢复 / 跨后端同步** 与任务中心;运维 CLI `backup-export`、`backup-restore`、`storage-sync`
## [1.2.8] — 2026-09-04
### 改进
- **双域名**:保存 / 初始化时弹出风险确认(含锁死说明与 `clear-domains` 恢复方式),不再强制校验当前 Host
### 新增
- **运维 CLI**:`clear-domains` 清除数据库域名配置(`docker exec pichost clear-domains`)
### 文档
- FAQ 与双域名、反代文档补充恢复步骤
## [1.2.7] — 2026-09-03
### 新增
- **登录验证**:登录/注册支持本地滑块、Cloudflare Turnstile、Cap;在「设置 → 访问控制」配置
- **运维 CLI**:`slider` 将验证方式重置为本地滑块(`docker exec pichost slider`)
### 改进
- 登出后登录页验证码可正常重新加载
## [1.2.6] — 2026-09-01
### 新增
- **管理界面**:设置、API、图库、存储页 UI 重构;API 页支持在线调试
- **图库筛选**:按存储后端筛选
- **存储标识**:新建 R2 / COS / OSS / S3 后端按类型生成 `r2-*`、`cos-*`、`oss-*`、`s3-*` 前缀
### 改进
- 操作日志表格样式与路径截断
- 存储后端卡片信息行布局
- 文档站与 README 截图更新
## [1.2.5] — 2026-08-31
### 新增
- **图库页**:导航「统计」改为「图库」(`/gallery`);点击图片打开详情弹层(大图、尺寸、上传方式、存储路径、链接复制)
- **列表操作**:全选 / 反选;单张删除移至详情弹层
- **上传来源**:图库 API 返回网页 / API 上传方式(来自活动日志)
### 改进
- README 补充技术栈章节
### 移除
- `/stats` 路由(不再保留兼容跳转)
## [1.2.4] — 2026-08-31
### 修复
- **访问控制留空仍拦截外链**:未配置 Referer 白名单时,浏览器直开图片正常,但博客/论坛嵌入会因 Referer 校验返回 403 图裂;现仅在配置了白名单时才启用防盗链
## [1.2.3] — 2026-08-30
### 修复
- **简短图片链接 + 按年/月分组**:纯文件名直链(如 `https://域名/xxx.webp`)不再误当成 `images/xxx.webp`,改为经 SQLite 索引反查 `images/年/月/xxx.webp`,缩略图与短链恢复正常
---
## [1.2.2] — 2026-08-30
> 升级后请**重启服务**使中间件与 API 生效。
### 双域名配置与 Host 隔离
#### 修复
| 问题 | 说明 |
| ---- | ---- |
| 管理域被误清空 | 设置页保存时,关闭双域名或仅改图片域可能把 `site_base_url` 写成空字符串,导致 UI 切回单域、管理域「消失」 |
| 配置与生效 URL 混淆 | `GET /api/settings` 的 `siteBaseUrl` / `imageBaseUrl` 曾混入当前请求的 `origin`,设置页「当前生效」与数据库配置难以区分 |
| 第三 Host 绕过隔离 | `pages.dev`、裸 IP、旧图片域等未纳入配置的 Host 此前不被中间件拦截,后台/API 可能仍可访问 |
#### 改进
**设置 API(`GET /api/settings`)**
| 字段 | 含义 |
| ---- | ---- |
| `siteBaseUrl` / `imageBaseUrl` | **配置值**(DB → 环境变量),不含 request fallback |
| `effectiveSiteBaseUrl` / `effectiveImageBaseUrl` | **直链生成用**,未配置时回退到当前请求 origin |
| `runtime.currentOrigin` | 检测到的当前访问地址(仅展示,不写入配置) |
| `runtime.hostRole` | `site` / `image` / `unknown` / `single` |
**保存 API(`PATCH /api/settings`)**
- 新增 body 字段 `domainSeparation`(`true` / `false`),显式表达是否启用双域名
- `domainSeparation: true` 时网站域与图片域**均必填**,且主机名不能相同
- `domainSeparation: false` 时允许清空网站域
- 未传 `domainSeparation` 且双域名已配置时,**禁止**单独把 `siteBaseUrl` 置空
**设置页 / 首次设置**
- 表单回填配置值;「当前生效」显示 `effective*` 字段
- 展示「检测到当前访问」地址,**不再**自动写入 `window.location.origin`
- 提供「填入检测地址」按钮(用户主动点击才填)
- 关闭双域名需确认弹窗
- 双域名开启且 `hostRole === 'unknown'` 时显示反代绕过警告
**Host 中间件**
- 双域名开启时,非 site/image 的 Host **应用层一律 404**(所有 HTTP 方法)
- 开发环境 `localhost` / `127.0.0.1` 例外,便于 `npm run dev`
- 与 Nginx `default_server` **互补**,建议两层都配置
#### 文档
- 重写 [Cloudflare / CF 优选部署](./cloudflare-deployment.md)(精简结构、检查清单、双层防护)
- 更新 [双域名分离](./domain-separation.md) 第三 Host 与应用层拦截说明
- 新增本页 **更新日志**
#### 升级说明
- **无需**数据库迁移或 CLI 操作
- 若管理域此前已被误清空:在 **设置** 中重新填写网站域,或设置环境变量 `SITE_BASE_URL` 后重启
- 生产双域名部署:确认反代 `server_name` 与设置一致;建议保留 Nginx default server
---
## [1.2.1] — 2026-08-29
### 新增
- 登录滑动拼图验证(缺口对齐);验证与登录分两步
- VitePress 文档站(`docs-site/`),部署至 GitHub Pages
- `npm run docs:dev` / `docs:build` / `docs:preview`
### 修复
- 统计页删除图片后图库不刷新
- 分页跳转输入框在 `type="number"` 下无法跳转
- 非首页路由下复制链接格式偏好不持久化
- 滑动验证 UI:滑块垂直居中、缺口尺寸与滑块一致
### 改进
- README 精简,详细说明迁入文档站
- 双域名文档补充未知 Host 风险与 Cloudflare 部署说明
---
## [1.2.0] — 2026-08-28
### 变更
- 图片统一存放在 `data/images/`;不再使用与 `images` 并列的顶层目录
### 新增
- 启动时自动同步图片索引(扫描磁盘、归一化遗留 key、清理孤儿记录)
---
## [1.1.x] 摘要
| 版本 | 要点 |
| ---- | ---- |
| 1.1.5 | API 上传后预览偶发失败修复;出图前校验文件存在 |
| 1.1.4 | 按年/月分组存储;网站域禁止直链出图 |
| 1.1.3 | 双域名分离(`SITE_BASE_URL` / `IMAGE_BASE_URL`);Host 中间件 |
| 1.1.0 | 多存储后端(S3 / R2 等) |
更早版本见 [GitHub CHANGELOG](https://github.com/O96u/PicHost/blob/main/CHANGELOG.md)。