- 统一图片、视频和文件的上传策略,支持文件大小、格式和限流配置 - 新上传的图片、视频和文件默认保存到本地磁盘,并支持修改默认存储后端 - 图库、视频库和文件库新增搜索与批量删除功能 - 更新视频与文件 API 文档,并完善服务端扩展名和内容类型校验 - 完善备份恢复统计,分别展示媒体记录和存储对象进度 - 完善用户级清空存储流程,清理当前用户的媒体、任务和缓存 - 修复清空存储后最近任务残留以及媒体逻辑遗漏视频和文件的问题 - 增加站点同步异常恢复和超时兜底处理 - 缩略图 FFmpeg 限制为单线程并增加 10 秒超时保护 - 低内存服务器开启 HLS 转码时显示风险提示 - 完善 m3u8 临时合并文件的下载后、到期和启动时清理 - 更新中英文更新日志,并将版本号提升至 1.5.0
252 lines
8.2 KiB
Markdown
252 lines
8.2 KiB
Markdown
# 更新日志
|
||
|
||
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)。
|