Rclone 在大功率传输时 效果往往不尽如人意,特别是使用 OneDrive时

rclone

挂载

挂载为本地磁盘

windows


rclone mount onedrive: V: --allow-other --allow-non-empty --vfs-cache-mode writes

linux


rclone mount onedrive: /home/xxx --allow-other --allow-non-empty --vfs-cache-mode writes 

卸载本地挂载:

fusermount -u /home/xxx

挂载的缓存选项

  1. --vfs-cache-mode off

    • 所有文件操作全部直接进行
    • 失败无法自动重试
  2. --vfs-cache-mode minimal

    • 读写模式打开的文件将会首先缓冲到磁盘
    • 其他模式打开文件直接进行操作
    • 失败无法自动重试
  3. --vfs-cache-mode writes

    • 读写模式打开的文件将会首先缓冲到磁盘
    • 只写模式打开的文件将会首先缓冲到磁盘
    • 只读取模式打开的文件将会直接进行操作
    • 支持自动重试
  4. --vfs-cache-mode full

    • 所有文件操作全部缓存
    • 读取会下载整个文件

同步文件夹

不会同步删除

rclone copy E:\ onedrive:/girlimg --transfers 32

会同步删除

rclone sync E:\ onedrive:/girlimg --transfers 32

常用参数

并行策略

--transfers 4 表示文件并行数量
--max-size 3G 传输的文件最大3G
--min-size 3G 传输的文件最小3G
--checkers 64 并行检查64个文件

块大小

  1. 可是设置每次上传的文件块大小
  2. 单位是KB
  3. 设大可以提高上传速度但是吃内存,内存允许的话可以大点
  4. 每种上传方式都有自己的chunk-size 参数 他们都有自己参数规则
//onedrive的chunk-size设置 必须是320KB的倍数,我们这里取100MB适合G口服务器
--onedrive-chunk-size 102400    

copy,copyto move,moveto

这四个命令 有统一的 命令格式

??? 源 到 目标

copy,copyto

copy(处理文件夹):

  1. copy 始终认为 目标参数 是文件夹,没有就新建
  2. 可以处理 文件夹的 复制
  3. 只会 复制目标了路径缺失的文件
  4. 可以 文件 到 文件夹

copyto(处理文件):

  1. 文件/文件夹的复制
  2. 如果 源 是文件 那么认为 目标 也是文件
  3. 如果 源 是文件夹 那么认为 目标 也是文件夹(转给 copy处理)
  4. 不可以 文件 到 文件夹(这个只能 copy处理)

move

  1. move,moveto 类同 copy
  2. 比copy多了删除 源文件
  3. 默认情况 文件夹移动后 原文件夹的 文件夹结构仍然存在
  4. 使用 参数【--delete-empty-src-dirs】 删除 源空文件夹(不一定有用可以rmdir)

重命名

rename 文件夹

rclone move  /name1 /name2 --delete-empty-src-dirs

rename 文件

rclone moveto  /name1 /name2
Last modification:July 22, 2020
如果觉得我的文章对你有用,请随意赞赏