feat: automate exact dedupe and improve web feedback

This commit is contained in:
OpenClaw Agent
2026-09-18 07:30:38 +08:00
parent 0fbadf0c9c
commit f10e92a5cd
8 changed files with 283 additions and 163 deletions
+5 -1
View File
@@ -43,7 +43,7 @@ am-deduper dedupe /music/AllMusic --db /data/dedupe.db --dry-run
# 确认后执行
am-deduper dedupe /music/AllMusic --db /data/dedupe.db
# 长驻监听:默认只自动执行安全的 Exact hard-link
# 长驻监听:启动时先做一次全量索引 + Exact 去重,之后自动执行安全的 Exact hard-link
am-deduper watch /music/AllMusic --db /data/dedupe.db
# 开启 L2 acoustic 匹配;建议先 dry-run 验证
@@ -123,7 +123,11 @@ http://<NAS-IP>:18080/
- 待审核:查看相似度、候选文件,可人工确认或保留。
- 任务:查看 scan / dry-run / dedupe 状态。
- 历史:查看 Hard Link 操作,并对仍保持同 inode 的操作执行安全回滚。
- 监听服务启动时会先做一次全量扫描与 Exact 去重;新文件稳定后也会自动索引并执行 Exact 去重。
- 跨 Web 与 watcher 进程使用数据库锁,避免两个容器同时执行 Hard Link。
- 文件被替换时会自动清空旧 SHA-256 / Chromaprint,防止旧内容哈希污染新文件。
- 扫描会把数据库中已经不存在的文件标记为 `missing`,避免脏索引继续计入统计。
- Web UI 的每个操作都有明确的启动、运行、完成/失败反馈,并保留任务结果。
> Web UI 支持可选管理 Token。生产环境建议在 NAS 的 Compose 同目录 `.env` 中设置 `AM_DEDUPER_TOKEN=<随机长字符串>`;不要把 Token 提交到 Git。设置后 Web UI 会在首次访问 API 时要求输入 Token。若未设置 Token,则仅适合可信内网环境,不要直接暴露到公网。