Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

cr4sync

cr4sync 是一个独立的命令行二进制 + 可选的多用户 HTTP API 服务,围绕 Cloudreve v4 实例提供两类核心能力:

  1. 本地 ↔ Cloudreve 同步——一次性同步 / 增量持续监听 / 双向同步,统一走 sync-coreSyncEngine
  2. 第三方网盘 → Cloudreve 单向迁移——目前支持百度网盘,真流式管线 + 断点续传 + 端到端一致性校验。

启用 server cargo feature 还可以以 HTTP API 形式把上述迁移能力暴露给多个 Cloudreve 用户,附带管理员审计能力。

两种使用形态

形态适用场景凭证落盘位置数据库
CLI站长本机单人使用./credential/token.json + ./credential/sources/baidu.json./credential/migrate.db
Server主程序插件,向多用户暴露 HTTP APIserver.db 内 source_credential 表(行级隔离)./credential/server.db

两种形态完全隔离:CLI 模式绝不读 server.db,server 模式绝不读 token.json(P0 不变量,有静态扫描守护测试)。

文档结构

  • 配置cr4sync.toml 完整示例 + 字段参考 + 凭证目录约定。
  • CLI:所有子命令的参数、行为、配置依赖。
  • Server:HTTP API 端点、鉴权、envelope、SSE wire format、admin 端点、server.db schema。

设计原则

  • 配置一份:CLI 与 server 共用 [serve.cr4] 段描述 Cloudreve 后端,差异仅在 [serve](监听地址端口)。
  • token 隔离(P0):server 路径上传 Cloudreve 必须使用调用方现场注入的 JWT,绝不读取站长 token.json
  • 行级隔离:server.db 所有 Repo 方法签名首参数必带 user_id,admin 跨用户操作走专门的 *_admin 方法。
  • 审计可查:server 所有写操作(POST/PUT/DELETE)落 audit_log 表,含 actor / action / target / payload(脱敏)。

文档约定

  • 文档中所有 JSON 示例都是 envelope 已脱壳后的形态,即响应 body 是 { "code": 0, "msg": "ok", "data": <例所示>, "request_id": "..." }
  • 时间戳一律为 Unix 秒 (i64),本机时区由客户端自行换算。
  • user_id 类型恒为字符串(Cloudreve sub 字段直透)。