链接同步
链接同步负责把已经整理好的媒体目录转换成媒体服务器可索引的入口。
- 视频库通常生成
.strm文件,给 Emby / Jellyfin / Plex 索引。 - 音乐库通常生成软链接,给 Navidrome 索引。
典型链路:
/CloudNAS/影视库 → 链接同步 → /media/影视库 → Emby / Jellyfin / Plex
/CloudNAS/音乐库 → 链接同步 → /music → Navidrome同步模式
| 模式 | 含义 | 推荐用途 | 注意事项 |
|---|---|---|---|
| STRM | 生成 .strm 文本文件,文件内记录云盘直连所需信息 | Emby / Jellyfin / Plex 视频库 | 配合 302 反代时,请使用新版内嵌 pick_code 的 STRM |
| 软链接 | 在目标目录创建指向源文件的符号链接 | Navidrome 音乐库,本地媒体库 | 媒体服务器必须能访问软链接指向的源路径 |
视频链接同步参数
| 参数 | 含义 | 推荐填写 | 注意事项 |
|---|---|---|---|
| 任务名称 | 同步任务显示名称 | 如 115电影STRM同步 | 建议包含云盘、媒体类型和同步模式 |
| 源目录 | 已归档好的媒体目录 | 如 /CloudNAS/115/影视库/电影 | 通常等于归档任务的目标目录 |
| 目标目录 | 生成 STRM 的目录 | 如 /media/电影 | Emby / Jellyfin / Plex 需要索引这个目录 |
| 同步模式 | 生成 STRM 或软链接 | 视频推荐 STRM | 需要 302 直连时使用 STRM |
| 监控模式 | 自动触发方式 | 联动同步场景不启用;独立同步可选 Webhook / 定时 | 与归档联动互斥 |
| 定时链接同步 Cron | 定时同步表达式 | 如 0 */2 * * * | 仅选择定时监控时生效 |
| 链路联动 | 是否被归档任务自动触发 | 由归档任务选择该同步任务 | 作为联动目标时,不要开启同步任务监控 |
音乐链接同步参数
| 参数 | 含义 | 推荐填写 | 注意事项 |
|---|---|---|---|
| 任务名称 | 同步任务显示名称 | 如 115音乐软链接同步 | 建议包含云盘和音乐库名称 |
| 源目录 | 已归档好的音乐目录 | 如 /CloudNAS/115/音乐库 | 通常等于音乐归档任务目标目录 |
| 目标目录 | Navidrome 音乐库目录 | 如 /music | Navidrome 容器也必须挂载同一个宿主机目录 |
| 同步模式 | STRM 或软链接 | 音乐推荐 软链接 | Navidrome 对软链接索引更友好 |
| 监控模式 | Webhook / 定时 | 联动同步场景不启用 | 与归档联动互斥 |
| 定时链接同步 Cron | 定时同步表达式 | 大库建议低频,如 0 3 * * * | 仅选择定时监控时生效 |
路径对应关系
链接同步最容易出错的是“FlowMedia 生成了文件,但媒体服务器看不到”。请确认源目录、目标目录、媒体服务器目录三者一致。
Emby / Jellyfin / Plex 示例
| 项目 | 路径 |
|---|---|
| 归档目标目录 | /CloudNAS/115/影视库/电影 |
| 链接同步源目录 | /CloudNAS/115/影视库/电影 |
| 链接同步目标目录 | /media/电影 |
| Emby 媒体库路径 | /media/电影 |
Navidrome 示例
| 项目 | 路径 |
|---|---|
| 音乐归档目标目录 | /CloudNAS/115/音乐库 |
| 音乐同步源目录 | /CloudNAS/115/音乐库 |
| 音乐同步目标目录 | /music |
| Navidrome 音乐库路径 | /music |
监控模式
链接同步任务支持以下触发方式:
| 模式 | 含义 | 适合场景 |
|---|---|---|
| 手动运行 | 点击任务卡片「运行」 | 首次同步、测试配置 |
| Webhook 通知 | CloudDrive2 文件变化后触发,带防抖窗口 | 同步任务独立运行时使用 |
| 定时通知 | 按 Cron 表达式触发 | Webhook 不稳定或希望固定时间同步 |
| 归档联动 | 归档任务完成后触发 | 推荐自动化闭环 |
归档联动和同步任务自身监控二选一。一个同步任务如果已经被归档任务联动触发,就不要再开启 Webhook / 定时监控。
防抖与增量扫描
FlowMedia 对链接同步做了防抖和增量处理:
| 场景 | 行为 |
|---|---|
| Webhook 连续通知 | 等待防抖窗口结束后合并触发一次 |
| Webhook 指定文件变化 | 优先只处理变化文件或变化目录 |
| 定时触发 | 与上次快照对比,只处理新增文件 |
| 手动运行 | 执行全量扫描 |
| 强制同步 | 重新生成全部目标文件 |
这样可以减少大型云盘目录反复全量遍历的等待时间。
Cron 表达式示例
| 表达式 | 含义 | 适合场景 |
|---|---|---|
*/30 * * * * | 每 30 分钟同步一次 | 小型媒体库 |
0 */2 * * * | 每 2 小时同步一次 | 中型媒体库 |
0 3 * * * | 每天凌晨 3 点同步一次 | 大型媒体库 |
0 8,20 * * * | 每天 8 点和 20 点同步 | 固定早晚整理 |
强制同步
强制同步会重新扫描源目录并重新生成目标文件。
适合以下场景:
- 旧 STRM 不是内嵌 pick_code 的新格式。
- 修改了目标目录或媒体库目录。
- 云盘文件发生大规模移动。
- 302 反代播放失败,排查后需要重建 STRM。
- 首次配置后想确认目标目录完整。
强制同步会增加云盘 API 请求和文件遍历压力,大库建议在低峰期执行。
STRM 与 302 反代
如果你要使用 FlowMedia 的 302 直连播放,推荐使用:
归档刮削 → 视频链接同步生成新版 STRM → Emby 客户端连接 6689新版 STRM 中包含云盘播放所需的标识,FlowMedia 反代可以直接解析并获取 CDN 直链。
旧版“挂载路径 STRM”可能无法触发 302 直连。如遇播放失败,请执行「强制同步」重新生成。
常见错误
| 现象 | 原因 | 处理 |
|---|---|---|
| Emby 看不到影片 | Emby 媒体库没有指向同步目标目录 | 把 Emby 媒体库路径设为 /media/... |
| 目标目录没有 STRM | 源目录填错或没有媒体文件 | 检查源目录是否为归档后的目录 |
| 同步任务重复触发 | 同时开启监控又作为归档联动目标 | 二选一,推荐归档联动 |
| Navidrome 看不到音乐 | 软链接目标路径容器不可访问 | 确认 FlowMedia 和 Navidrome 共享同一宿主机目录 |
| 302 播放失败 | STRM 格式旧、云盘登录失效或反代端口未用 | 强制同步,重新登录云盘,客户端改连 6689 |