tsdaer 发布于
>=2.25.0
v1.6.0:媒体同域代理与前台明暗切换
新功能
- 同域媒体代理:新增 media-proxy 端点与「媒体同域代理」设置组。
把允许清单内主机的图片、音视频地址改写为站点自身的
/apis/api.my-docs.tsdaer.run/v1alpha1/media-proxy?src=… 由服务端代取,
前台只与站点同域通信。适用于对象存储桶不对外开放、Halo 附件只记录
裸对象地址(浏览器直连返回 400 InvalidArgument / Authorization)的情况。
支持 *.example.com 通配主机、可选凭证请求头、大小上限;超限在响应流上截断;
8 MiB 以内走内存,更大落临时文件流式回放。 - 前台明暗切换按钮:访客手动选择后优先于站点主题与系统偏好,记在浏览器本地,
刷新保持,宿主主题写在根元素上的 dark 标记不会把手动浅色压回去。 - 后台从附件库插入视频改用图片语法
,标签取附件标题或文件名。
- 记住附件弹窗打开前的光标位置,插入落回该位置而不是文档末尾。
修复
- 端点清理时机:临时文件曾在 WebFlux 开始写响应体之前被删除,
大于 8 MiB 的媒体全部返回 500、客户端收到 0 字节。 - 媒体代理大小上限未生效:改为在响应流上按字节截断,不再信任上游声明的
Content-Length(此前声明 1 KiB 实发 12 MiB 会把整个文件读进堆)。 - 普通域名被误判为 IPv6 私网地址(cdn.example.com 这类全十六进制字符域名被拒)。
- :443 显式端口与尾点域名匹配不上允许清单,私有桶场景下等于既没代理、直连也打不开。
- 带端口的凭证规则把端口当成头名,导致规则静默失效并向上游发出垃圾头。
- 204 之类的 2xx 响应丢弃已落地的响应体,导致临时文件泄漏。
- 附件标签在非法百分号编码时抛 URIError。
升级提示
- 媒体同域代理默认关闭;允许清单留空时端点一律 404。
- 该端点对访客开放,凭证规则只按主机匹配、没有路径限制:配了凭证即等于
把该主机对公网开放读取。请只把确实需要公开的媒体主机写进允许清单。 - 文档渲染设置新增四个媒体代理设置项;主题切换按钮出现在 /docs 三个页面右上角。
Generated from v1.6.0
资源下载
- plugin-my-docs-1.6.0.jar