Skip to content

v1.1.3

Choose a tag to compare

@github-actions github-actions released this 09 May 08:52
· 101 commits to main since this release

v1.1.3 Release Notes

Bug 修复:ffprobe 缓存键精度丢失

internal/media/probe.go 中 getCacheKey 使用 string(rune(mtime)) 将 Unix 时间戳转为单个 Unicode 字符,导致不同修改时间的文件生成相同缓存键,造成缓存误命中或失效。

修复为 fmt.Sprintf("%s|%d", path, mtime),确保缓存键唯一。


性能优化

ffprobe 单次调用

probeCodecInfo 原先启动两个 ffprobe 进程分别获取视频和音频编码信息。合并为单次调用,使用 -select_streams v:0,a:0 -of json 一次获取所有编码信息,扫描时间减半。

正则黑名单预编译

Scanner 包中 IsBlockedString 对用户配置的正则规则每次匹配时重新编译。改为 sync.Map 缓存已编译的 *regexp.Regexp,匹配时直接复用。

前端 probeCache 扩容

probeCache 上限从 100 条提升至 500 条,减少大型媒体库浏览时对 /api/probe 的重复请求。

前端进度上报批量合并

reportProgress 改为 300ms 窗口批量合并机制,同一媒体 ID 只保留最新时间值,窗口到期后并发发送,减少 HTTP 请求次数。


CI 优化

重构 CI 工作流,引入 matrix 构建策略和 artifact 传递机制,提升构建效率。


验证

  • go test ./... ✅ 全部通过
  • go vet ./... ✅ 无警告

影响评估

  • 无 API 变更、无配置变更、无破坏性变更
  • ffprobe 缓存键修复后,旧缓存条目自动失效,无需手动清理
  • 前端 probeCache 扩容对内存影响极小(每条约 200 字节,总计 < 100KB)

发布日期: 2026-05-09