Rclone 的 VFS 缓存模式与CD2的目录持久化

一、Rclone 的 VFS 缓存模式特点

  1. 文件级缓存 Rclone 的 VFS 缓存针对文件内容和元数据进行缓存,会将访问过的文件存放在本地目录中。 支持对远程文件的读写,并通过本地缓存提升访问速度。
  2. 可调参数丰富 缓存模式包括:offminimalwritesfull,可根据不同性能与存储需求选择。 主要参数包括:--vfs-cache-mode--vfs-cache-max-age 等。
  3. 目录结构动态生成 Rclone 的目录结构来自远程存储的实时数据,即使有缓存,目录树仍需频繁访问云端以保持同步。
  4. 适用场景广泛 适用于只读与读写场景,常用于将云存储挂载为本地磁盘(如 WebDAV、Google Drive)。
  5. 缓存位置可指定 使用参数 --cache-dir 指定缓存路径,如 /data/cache

二、CloudDrive2 的目录持久化特点

  1. 目录级缓存 CloudDrive2 更关注目录结构的持久化,而非文件内容。 会将云盘目录树下载至本地保存,降低 API 请求频率。
  2. 显著减少 API 调用 持久化后浏览目录不依赖实时 API 调用,仅在读文件内容时访问远程。
  3. 用途专一 主要用于优化云盘目录浏览速度(如阿里云盘、百度网盘)。 特别适合频繁浏览目录但较少访问文件内容的场景。
  4. 依赖本地数据库 持久化目录通常存储在本地数据库或文件中。 更新机制为周期性同步,而非实时反映远程变化。
  5. 适用于大规模目录管理 对于文件数量巨大、目录层级深的云盘非常有效,常用于 Alist 等文件管理器。

三、对比总结

特性 Rclone VFS 缓存 CloudDrive2 目录持久化
主要缓存内容 文件内容 + 元数据 目录结构
缓存存储位置 本地缓存目录 本地数据库/文件
动态性 实时从云端同步 按周期同步
减少 API 调用 中等,需验证一致性 极大减少,浏览不访问云端
适用场景 文件读写挂载(如 WebDAV) 快速目录浏览
目录加载性能 中等 极快
配置复杂度 参数多、可调性强 简单、专注目录缓存

四、Rclone 核心参数解析

  1. 目录缓存时间(--dir-cache-time 指定本地目录缓存的保留时间。示例:缓存 12 小时。
--dir-cache-time 12h
  1. 文件缓存模式(--vfs-cache-mode
  • off:无文件缓存
  • minimal:仅缓存元信息
  • writes:缓存写入操作,写完后上传
  • full:完整缓存文件内容,读写均走本地优先推荐读写场景使用:
--vfs-cache-mode full
  1. 文件缓存最大生命周期(--vfs-cache-max-age 控制文件缓存多久后清理,如缓存 24 小时:
--vfs-cache-max-age 24h
  1. 缓存大小限制(--vfs-cache-max-size 限制缓存占用空间,如 10GB:
--vfs-cache-max-size 10G
  1. 缓存目录(--cache-dir
--cache-dir /data/cache
  1. 可选优化参数
  • 文件属性缓存(--attr-timeout
--attr-timeout 1h
  • 并发限制(--transfers--checkers
--transfers 4
--checkers 8
  • 跳过小文件检查(--no-checksum--no-modtime
--no-checksum
--no-modtime
  • 限制 API 速率(--bwlimit--tpslimit
--bwlimit 10M
--tpslimit 5
  • API 突发限制(--tpslimit-burst
--tpslimit-burst 10

五、Rclone 完整挂载示例(百度网盘优化)

/usr/bin/rclone mount alist:/百度云盘 /data/webdav \
  --vfs-cache-mode full \
  --cache-dir /data/cache \
  --vfs-cache-max-age 24h \
  --vfs-cache-max-size 10G \
  --dir-cache-time 12h \
  --attr-timeout 6h \
  --transfers 4 \
  --checkers 8 \
  --no-checksum \
  --no-modtime \
  --tpslimit-burst 10 \
  --tpslimit 5 \
  --daemon

六、效果

  1. API 调用显著减少 依赖目录缓存与文件缓存,减少重复请求。 跳过小文件校验也可减少不必要的 API 消耗。
  2. 性能大幅提升 使用本地缓存降低延迟,提高读写速度。 合理控制并发与速率可避免触发云盘 API 限制。