一、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)文件浏览、快速目录加载
目录加载性能中等,需部分依赖远程 API高,基于本地持久化
配置复杂性可调参数多,配置灵活简单,专注于目录持久化

Rclone VFS 缓存也可以通过适当的配置来减少 API 调用频率,从而优化性能。这主要依赖于 目录缓存文件缓存 参数的合理设置。

四、 Rclone的核心参数配置

  1. 目录缓存(--dir-cache-time):控制 Rclone 在本地缓存目录结构的时间。在缓存时间内,目录内容不会重复通过 API 调用远程云存储。推荐值:表示目录结构缓存 12 小时。
--dir-cache-time 12h
  1. 文件缓存模式(--vfs-cache-mode):通过本地文件缓存减少重复访问云端。
    缓存模式选项:
    off:不缓存文件内容,所有读写实时访问云端。
    minimal:只缓存文件的元信息(较少减少 API 调用)。
    writes:缓存本地写入,文件内容写入完成后上传。
    full:缓存文件的完整内容,文件读取和写入均优先使用本地缓存。
--vfs-cache-mode full
  1. 缓存的最大生命周期(--vfs-cache-max-age): 控制文件在本地缓存的时间,超过该时间后文件会被删除。推荐值示例: 表示文件缓存 24 小时,有效减少频繁访问远程文件的 API 调用。
--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):文件属性缓存的时间,减少访问文件属性时的 API 调用。示例:

--attr-timeout 1h

并发请求限制(--transfers 和 --checkers):控制同时进行的文件传输和目录检查任务数。推荐值:表示最多同时传输 4 个文件,检查目录 8 次。根据带宽和远程存储性能调整。示例:

--transfers 4
--checkers 8

忽略小文件的检查(--no-checksum 和 --no-modtime):减少重复 API 调用以检查小文件的哈希值和修改时间:示例:

--no-checksum
--no-modtime

限制后台检查速率(--bwlimit 和 --tpslimit): 限制 API 请求速率,避免触发云存储的访问限制。

--bwlimit 10M
--tpslimit 5

瞬时突发请求数(--tpslimit-burst ):配置允许平稳每秒 5 次 API 请求,但在短时间(突发情况下)最多可以发送 10 次请求。示例:

--tpslimit 5
--tpslimit-burst 10

五、完整示例配置

以下命令示例一个针对百度网盘优化的挂载配置,减少 API 调用并保证性能:

/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 调用
    --dir-cache-time--vfs-cache-max-age 缓存目录和文件,减少重复请求。
    --no-checksum--no-modtime 跳过小文件的额外检查。
  2. 提高性能
    使用本地缓存 (--vfs-cache-mode full) 提高文件读写速度。
    限制并发和速率避免过度调用 API。
    活适应:根据云存储的 API 限制和本地环境调整缓存时间和缓存大小。
如果觉得我的文章对你有用,请随意赞赏