rclone serve docker
通过 docker 的 volume plugin API 为任何远程设备提供服务。
简介
该命令实现了 Docker volume 插件 API,允许 docker 使用 rclone 作为各种云提供商的数据存储机制。 rclone 在此基础上提供了 docker volume plugin。
要创建一个 docker 插件,必须创建一个 Unix 或 TCP 插口,以便 Docker 在使用该插件时会寻找的一个 Unix 或 TCP 插口,然后它就会监听来自 然后它就会监听来自 docker 守护进程的命令,并在必要时运行相应的代码。 Docker 插件可以在 docker 守护进程的控制下作为受管插件运行,也可以作为独立的本地服务运行。 或作为独立的本地服务运行。 测试时,可以直接运行 例如
sudo rclone serve docker --base-dir /tmp/rclone-volumes --socket-addr localhost:8787 -vv
运行 rclone serve docker
命令将创建上述的套接字,用于监听来自 Docker 的命令,以创建所需的卷。通常情况下,你无需指定 --socket-addr
标志。该 API 会监听 Unix 域套接字 /run/docker/plugins/rclone.sock
。在上述示例中,rclone 将创建一个 TCP 套接字,并生成一个包含套接字地址的小文件 /etc/docker/plugins/rclone.spec
。我们使用 sudo
命令是因为这两个路径只有根用户才能写入。
如果你后续决定更改监听套接字,必须重启 Docker 守护进程,以便它重新连接到 /run/docker/plugins/rclone.sock
或解析新的 /etc/docker/plugins/rclone.spec
文件。在重启之前,任何与卷相关的 Docker 命令尝试访问旧套接字时都会超时。
直接运行此命令仅在 Linux 系统上受支持,Windows 或 macOS 系统不支持。不过,在 完整文档 中详细描述的托管插件模式下则不存在此问题。
该命令会在 --base-dir
指定的路径下创建卷挂载点(默认路径为 /var/lib/docker-volumes/rclone
,只有根用户可以访问),并在 rclone 缓存目录中维护一个 JSON 格式的 docker-plugin.state
文件,用于记录已创建和挂载的卷的信息。
所有挂载和 VFS(虚拟文件系统)选项都由 Docker 守护进程通过 API 提交,但你也可以在命令行中提供默认值,还可以设置配置文件和缓存目录的路径,或者调整日志的详细程度。
VFS - 虚拟文件系统
此命令使用了 VFS 层。该层将 rclone 所使用的云存储对象转换为更类似于磁盘文件系统的形式。
云存储对象具有许多与磁盘文件不同的特性,例如无法对其进行扩展或在文件中间进行写入操作,因此 VFS 层需要处理这些问题。由于没有一种通用的解决方案,下面将介绍各种可用的选项。
VFS 层还实现了一个目录缓存,用于在内存中缓存文件和目录的信息(但不包括数据)。
VFS 目录缓存
使用 --dir-cache-time
标志,你可以控制目录信息的缓存时间,在此期间目录信息将被视为最新的,无需从后端刷新。通过 VFS 进行的更改将立即显示,或者使缓存失效。
--dir-cache-time duration 目录条目缓存的时间(默认值为 5 分钟)
--poll-interval duration 轮询更改的时间间隔。必须小于 dir-cache-time,仅适用于支持的远程存储。设置为 0 可禁用(默认值为 1 分钟)
然而,如果后端配置不支持轮询更改,通过 Web 界面或另一个 rclone 副本直接在云存储上进行的更改,只有在目录缓存过期后才会被检测到。如果后端支持轮询,更改将在轮询间隔内被检测到。
你可以向 rclone 发送 SIGHUP
信号,强制其刷新所有目录缓存,无论缓存的时间长短。假设只有一个 rclone 实例在运行,你可以使用以下命令重置缓存:
kill -SIGHUP $(pidof rclone)
如果你为 rclone 配置了 远程控制,则可以使用 rclone rc 命令刷新整个目录缓存:
rclone rc vfs/forget
或者刷新单个文件或目录的缓存:
rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS 文件缓冲
--buffer-size
标志用于确定预先缓冲数据所需的内存量。
每个打开的文件都会尝试在内存中始终保留指定数量的数据。缓冲的数据仅与一个打开的文件相关,不会共享。
此标志是每个打开文件使用内存的上限。缓冲区仅会为已下载但尚未读取的数据使用内存。如果缓冲区为空,仅会使用少量内存。
rclone 用于缓冲的最大内存量可达 --buffer-size * 打开文件数
。
VFS 文件缓存
这些标志用于控制 VFS 文件缓存选项。文件缓存对于使 VFS 层与普通文件系统兼容是必要的,但可以通过牺牲一些兼容性来禁用它。
例如,如果你想同时对一个文件进行读写操作,则需要启用 VFS 缓存。更多详细信息请见下文。
请注意,VFS 缓存与缓存后端是分开的,你可能需要使用其中一个或两个都使用。
--cache-dir string rclone 用于缓存的目录。
--vfs-cache-mode CacheMode 缓存模式:off|minimal|writes|full(默认值为 off)
--vfs-cache-max-age duration 缓存中对象的最大未访问时间(默认值为 1 小时)
--vfs-cache-max-size SizeSuffix 缓存中对象的最大总大小(默认值为无限制)
--vfs-cache-min-free-space SizeSuffix 缓存所在磁盘的目标最小可用空间(默认值为无限制)
--vfs-cache-poll-interval duration 轮询缓存中过期对象的时间间隔(默认值为 1 分钟)
--vfs-write-back duration 使用缓存时,文件最后一次使用后写回的时间(默认值为 5 秒)
如果使用 -vv
选项运行 rclone,它将打印文件缓存的位置。文件存储在与操作系统相关的用户缓存文件区域中,但可以通过 --cache-dir
或设置相应的环境变量来控制。
缓存有 4 种不同的模式,可通过 --vfs-cache-mode
标志选择。缓存模式越高,rclone 的兼容性越好,但会占用更多的磁盘空间。
请注意,文件只有在关闭且在 --vfs-write-back
秒内未被访问时才会写回到远程存储。如果 rclone 在文件未上传时退出或崩溃,下次使用相同标志运行 rclone 时,这些文件将被上传。
如果使用 --vfs-cache-max-size
或 --vfs-cache-min-free-size
标志,请注意缓存可能会超过这些配额,原因有两个。一是缓存仅在 --vfs-cache-poll-interval
时间间隔内进行检查。二是打开的文件无法从缓存中移除。当 --vfs-cache-max-size
或 --vfs-cache-min-free-size
超过限制时,rclone 将首先尝试移除缓存中访问最少的文件。rclone 将从最长时间未被访问的文件开始移除。这种缓存清理策略是高效的,并且更相关的文件可能会保留在缓存中。
--vfs-cache-max-age
标志将在指定的未访问时间后从缓存中移除文件。默认值为 1 小时,这意味着将开始移除 1 小时内未被访问的文件。当缓存中的文件被访问时,1 小时的计时器将重置为 0,并在再过 1 小时后才会移除。请使用标准符号(s、m、h、d、w)指定时间。
如果你使用 --vfs-cache-mode > off
模式运行两个使用相同 VFS 缓存且远程存储相同或重叠的 rclone 副本,请勿这样做,因为这可能会导致数据损坏。你可以通过为每个 rclone 实例指定不同的 --cache-dir
来避免这个问题。如果使用的远程存储不重叠,则无需担心这个问题。
–vfs-cache-mode off
在此模式下(默认模式),缓存将直接从远程存储读取数据并直接写入远程存储,不会在磁盘上缓存任何内容。
这意味着某些操作将无法执行:
- 无法同时以读写模式打开文件
- 以写入模式打开的文件无法进行定位操作
- 以写入模式打开现有文件时,必须设置 O_TRUNC 标志
- 以 O_TRUNC 标志以读取模式打开的文件将以写入模式打开
- 仅以写入模式打开的文件将表现得如同设置了 O_TRUNC 标志一样
- 忽略打开模式 O_APPEND 和 O_TRUNC
- 如果上传失败,无法重试
–vfs-cache-mode minimal
此模式与 “off” 模式非常相似,不同之处在于以读写模式打开的文件将被缓冲到磁盘。这意味着以写入模式打开的文件将更具兼容性,但仅使用最少的磁盘空间。
以下操作仍然无法执行:
- 仅以写入模式打开的文件无法进行定位操作
- 以写入模式打开现有文件时,必须设置 O_TRUNC 标志
- 仅以写入模式打开的文件将忽略 O_APPEND 和 O_TRUNC 标志
- 如果上传失败,无法重试
–vfs-cache-mode writes
在此模式下,仅以读取模式打开的文件仍然直接从远程存储读取,而以写入模式或读写模式打开的文件将首先被缓冲到磁盘。
此模式应支持所有正常的文件系统操作。
如果上传失败,将以指数级递增的时间间隔进行重试,最长重试时间为 1 分钟。
–vfs-cache-mode full
在此模式下,所有的读写操作都将通过磁盘进行缓冲。从远程存储读取的数据也将被缓冲到磁盘。
在此模式下,缓存中的文件将是稀疏文件,rclone 将跟踪已下载的文件部分。
因此,如果应用程序只读取每个文件的开头部分,rclone 将只缓冲文件的开头部分。这些文件在缓存中看起来是完整大小,但实际上是稀疏文件,仅包含已下载的数据。
此模式应支持所有正常的文件系统操作,并且在其他方面与 --vfs-cache-mode writes
模式相同。
在读取文件时,rclone 将提前读取 --buffer-size
加上 --vfs-read-ahead
字节的数据。--buffer-size
的数据将在内存中缓冲,而 --vfs-read-ahead
的数据将在磁盘上缓冲。
使用此模式时,建议不要将 --buffer-size
设置得过大,如果需要,可以将 --vfs-read-ahead
设置得大一些。
重要提示:并非所有文件系统都支持稀疏文件。特别是 FAT/exFAT 文件系统不支持。如果缓存目录位于不支持稀疏文件的文件系统上,rclone 的性能将非常差,并且如果检测到这种情况,它将记录一条错误消息。
指纹识别
VFS 的各个部分使用指纹识别来判断本地文件副本相对于远程文件是否发生了更改。指纹信息由以下内容组成:
- 文件大小
- 修改时间
- 哈希值
前提是对象上有这些可用信息。
在某些后端,获取这些属性的速度较慢(每个对象需要额外的 API 调用或额外的处理工作)。
例如,local
和 sftp
后端的 hash
属性获取速度较慢,因为它们需要读取整个文件并进行哈希计算;而 s3
、swift
、ftp
和 qinqstor
后端的 modtime
属性获取速度较慢,因为它们需要额外的 API 调用才能获取该属性。
如果你使用 --vfs-fast-fingerprint
标志,rclone 将不会在指纹识别中包含这些耗时的操作。这会使指纹识别的准确性降低,但速度会快很多,并且可以提高缓存文件的打开速度。
如果你在 local
、s3
或 swift
后端上运行 VFS 缓存,建议使用此标志。
请注意,如果你更改了此标志的值,缓存中文件的指纹信息可能会失效,这些文件将需要重新下载。
VFS 分块读取
当 rclone 从远程存储读取文件时,它会以分块的方式进行读取。这意味着 rclone 不会请求整个文件,而是读取指定的块。通过仅请求实际读取的块,这种方式可以减少某些远程存储的下载配额使用,但会增加请求的数量。
以下标志用于控制分块读取:
--vfs-read-chunk-size SizeSuffix 以分块方式读取源对象(默认值为 128M)
--vfs-read-chunk-size-limit SizeSuffix 分块大小的最大倍增限制(默认值为无限制)
--vfs-read-chunk-streams int 同时读取的并行流数量
分块读取的行为会根据 --vfs-read-chunk-streams
参数的不同而有所不同。
--vfs-read-chunk-streams
== 0
Rclone 将开始读取大小为 --vfs-read-chunk-size
的块,然后每次读取时将块大小翻倍。如果指定了 --vfs-read-chunk-size-limit
且其值大于 --vfs-read-chunk-size
,则每个打开文件的块大小将只翻倍到指定的值。如果该值为 “off”(默认值),则禁用限制,块大小将无限增长。
使用 --vfs-read-chunk-size 100M
和 --vfs-read-chunk-size-limit 0
时,将下载以下部分:0 - 100M、100M - 200M、200M - 300M、300M - 400M 等等。当指定 --vfs-read-chunk-size-limit 500M
时,结果将是 0 - 100M、100M - 300M、300M - 700M、700M - 1200M、1200M - 1700M 等等。
将 --vfs-read-chunk-size
设置为 0
或 “off” 将禁用分块读取。
这些块不会在内存中缓冲。
--vfs-read-chunk-streams
> 0
Rclone 将同时读取 --vfs-read-chunk-streams
个大小为 --vfs-read-chunk-size
的块。每次读取的块大小将保持不变。
这在高延迟链接或连接到高性能对象存储的高带宽链接上可以显著提高性能。
需要进行一些实验来找到 --vfs-read-chunk-size
和 --vfs-read-chunk-streams
的最佳值,因为这些值将取决于所使用的后端以及与后端之间的延迟。
对于高性能对象存储(例如 AWS S3),一个合理的起始设置可能是 --vfs-read-chunk-streams 16
和 --vfs-read-chunk-size 4M
。在对 AWS S3 的测试中,性能大致与 --vfs-read-chunk-streams
的设置成正比。
类似的设置也适用于高延迟链接,但根据延迟情况,可能需要更多的 --vfs-read-chunk-streams
才能获得更高的吞吐量。
VFS 性能
这些标志可用于出于性能或其他原因启用/禁用 VFS 的某些功能。另请参阅 分块读取 功能。
特别是 S3 和 Swift 后端从 --no-modtime
标志(或使用 --use-server-modtime
以获得略有不同的效果)中受益巨大,因为每次读取修改时间都需要进行一次事务操作。
--no-checksum 上传/下载时不比较校验和。
--no-modtime 不读取/写入修改时间(可以加快速度)。
--no-seek 不允许在文件中进行定位操作。
--read-only 仅允许只读访问。
有时 rclone 会收到无序的读写请求。rclone 不会进行定位操作,而是会等待一小段时间,等待按顺序的读写请求到来。这些标志仅在不使用磁盘缓存文件时才会生效。
--vfs-read-wait duration 在进行定位操作之前等待按顺序读取的时间(默认值为 20 毫秒)
--vfs-write-wait duration 在给出错误之前等待按顺序写入的时间(默认值为 1 秒)
当使用 VFS 写缓存(--vfs-cache-mode
设置为 writes 或 full)时,可以设置全局标志 --transfers
来调整从缓存中并行上传修改后文件的数量(相关的全局标志 --checkers
对 VFS 没有影响)。
--transfers int 并行运行的文件传输数量(默认值为 4)
符号链接
默认情况下,VFS 不支持符号链接。但是,可以通过以下任一标志启用此功能:
--links 将符号链接转换为带有 `.rclonelink` 扩展名的普通文件,反之亦然。
--vfs-links 为 VFS 层将符号链接转换为带有 `.rclonelink` 扩展名的普通文件,反之亦然。
由于大多数云存储系统不直接支持符号链接,rclone 将符号链接存储为带有特殊扩展名的普通文件。因此,一个看起来是符号链接的文件 link-to-file.txt
将在云存储中存储为 link-to-file.txt.rclonelink
,其内容将是符号链接目标的路径。
请注意,--links
标志会在 rclone 全局范围内启用符号链接转换,这包括任何支持此概念的后端(例如本地后端)。而 --vfs-links
仅在 VFS 层启用此功能。
此方案与 本地后端的 –local-links 标志 所使用的方案兼容。
--vfs-links
标志是为 rclone mount
、rclone nfsmount
和 rclone serve nfs
设计的。
目前尚未对其他 rclone serve
命令进行测试。
当前实现的一个限制是,它期望调用者解析子符号链接。例如,给定以下目录树
.
├── dir
│ └── file.txt
└── linked-dir -> dir
VFS 能够正确解析 linked-dir
,但无法解析 linked-dir/file.txt
。对于经过测试的命令而言,这并非问题,但对于其他命令可能会有影响。
注意,符号链接支持存在一个未解决的问题 问题 #8245,当符号链接被移动到包含同名文件的目录中时(反之亦然),会创建重复的文件。
VFS 大小写敏感性
Linux 文件系统区分大小写:两个文件可以仅在大小写上不同,并且打开文件时必须使用确切的大小写。
现代 Windows 系统中的文件系统不区分大小写,但会保留大小写:虽然可以使用任意大小写打开现有文件,但创建文件时使用的精确大小写会被保留,并且程序可以查询到。同一目录下不允许存在仅大小写不同的两个文件。
通常,macOS 上的文件系统不区分大小写。虽然可以将 macOS 文件系统设置为区分大小写,但这并非默认设置。
--vfs-case-insensitive
VFS 标志控制着 rclone 如何处理这两种情况。如果其值为 “false”,rclone 会将文件名原样传递给远程存储。如果该标志为 “true”(或者在命令行中出现但未指定值),rclone 可能会按如下方式进行 “修正”。
用户可能会指定一个与远程存储中存储的大小写不同的文件名来进行打开、删除、重命名等操作。如果参数引用的是一个名称完全相同的现有文件,那么将使用磁盘上现有文件的大小写。然而,如果没有找到名称完全相同的文件,但存在仅大小写不同的名称,rclone 会自动修正该名称。这种修正仅在请求现有文件时发生。rclone 新创建的文件名的大小写敏感性由底层远程存储控制。
请注意,运行 rclone 的操作系统(目标系统)的大小写敏感性可能与 rclone 呈现的文件系统(源系统)的大小写敏感性不同。该标志控制是否进行 “修正” 以满足目标系统的要求。
如果命令行中未提供该标志,则其默认值取决于 rclone 运行的操作系统:在 Windows 和 macOS 上为 “true”,其他情况下为 “false”。如果该标志出现但未指定值,则其值为 “true”。
--no-unicode-normalization
标志控制是否对那些不同但在 Unicode 方面 规范等价 的文件名进行类似的 “修正”。Unicode 规范化对于 macOS 用户特别有用,因为 macOS 倾向于使用 NFD 形式,而大多数其他平台使用 NFC 形式。因此,强烈建议在 macOS 上保持默认值 false
,以避免编码兼容性问题。
在(可能不太可能)对大小写和 Unicode 进行规范化后,目录中存在多个重复文件名的情况下,--vfs-block-norm-dupes
标志可以隐藏这些重复项。这会带来性能上的权衡,因为 rclone 在列出目录时必须扫描整个目录以查找重复项。因此,如果不需要,建议禁用此功能。但是,macOS 用户可能希望考虑使用它,否则,如果远程目录中同时包含同一文件名的 NFC 和 NFD 版本,将会出现一种奇怪的情况:这两个版本的文件在挂载中都可见,并且看起来都可以编辑,然而,编辑任何一个版本实际上都会导致只有 NFD 版本在底层被编辑。--vfs-block-norm-dupes
通过检测这种情况、隐藏重复项并记录错误来避免这种混淆,这与 rclone sync
中的处理方式类似。
VFS 磁盘选项
此标志允许你手动设置文件系统的统计信息。当这些统计信息无法自动正确读取时,这可能会很有用。
--vfs-disk-space-total-size 手动设置磁盘总空间大小(示例:256G,默认值:-1)
已使用字节的替代报告方式
某些后端,尤其是 S3,不会报告已使用的字节数。如果你在文件系统上运行 df
时需要这些信息可用,则可以将 --vfs-used-is-size
标志传递给 rclone。
设置此标志后,rclone 不会依赖后端来报告此信息,而是会像 rclone size
一样扫描整个远程存储,并自行计算总使用空间。
警告:与 rclone size
不同,此标志会忽略过滤器,以确保结果准确。然而,这非常低效,可能会产生大量的 API 调用,从而导致额外费用。请将其作为最后手段使用,并且仅在启用缓存的情况下使用。
rclone serve docker [flags]
Options
--allow-non-empty 允许挂载到非空目录(Windows 系统不支持)
--allow-other 允许其他用户访问(Windows 系统不支持)
--allow-root 允许 root 用户访问(Windows 系统不支持)
--async-read 使用异步读取(Windows 系统不支持)(默认值为 true)
--attr-timeout Duration 文件/目录属性的缓存时间(默认值为 1 秒)
--base-dir string 卷的基础目录(默认值为 "/var/lib/docker-volumes/rclone")
--daemon 在后台运行挂载并退出父进程(由于后台输出被抑制,请使用 --log-file 和 --log-format=pid,... 来监控)(Windows 系统不支持)
--daemon-timeout Duration rclone 响应内核的时间限制(Windows 系统不支持)(默认值为 0 秒)
--daemon-wait Duration 等待守护进程挂载就绪的时间(Linux 系统为最大时间,OSX/BSD 系统为固定睡眠时间)(Windows 系统不支持)(默认值为 1 分钟)
--debug-fuse 调试 FUSE 内部机制 - 需要 -v 选项
--default-permissions 让内核根据文件模式强制执行访问控制(Windows 系统不支持)
--devname string 设置设备名称 - 默认值为 remote:path
--dir-cache-time Duration 目录条目缓存的时间(默认值为 5 分钟)
--dir-perms FileMode 目录权限(默认值为 777)
--direct-io 使用直接 I/O,禁用数据缓存
--file-perms FileMode 文件权限(默认值为 666)
--forget-state 跳过恢复之前的状态
--fuse-flag stringArray 直接传递给 libfuse/WinFsp 的标志或参数(如有需要可重复使用)
--gid uint32 覆盖文件系统设置的 gid 字段(Windows 系统不支持)(默认值为 1000)
-h, --help docker 命令的帮助信息
--link-perms FileMode 链接权限(默认值为 666)
--max-read-ahead SizeSuffix 顺序读取时可预取的字节数(Windows 系统不支持)(默认值为 128Ki)
--mount-case-insensitive Tristate 告知操作系统挂载点是否区分大小写(true 表示不区分,false 表示区分,auto 表示自动)(默认值为未设置)
--network-mode 作为远程网络驱动器挂载,而不是固定磁盘驱动器(仅 Windows 系统支持)
--no-checksum 上传/下载时不比较校验和
--no-modtime 不读取/写入修改时间(可以加快速度)
--no-seek 不允许在文件中进行定位操作
--no-spec 不写入 spec 文件
--noappledouble 忽略 Apple Double (._) 和 .DS_Store 文件(仅 OSX 系统支持)(默认值为 true)
--noapplexattr 忽略所有 "com.apple.*" 扩展属性(仅 OSX 系统支持)
-o, --option stringArray libfuse/WinFsp 的选项(如有需要可重复使用)
--poll-interval Duration 轮询更改的时间间隔,必须小于 dir-cache-time,仅适用于支持的远程存储(设置为 0 可禁用)(默认值为 1 分钟)
--read-only 仅允许只读访问
--socket-addr string 地址 <host:port> 或绝对路径(默认值为:/run/docker/plugins/rclone.sock)
--socket-gid int Unix 套接字的 GID(默认值为:当前进程的 GID)(默认值为 1000)
--uid uint32 覆盖文件系统设置的 uid 字段(Windows 系统不支持)(默认值为 1000)
--umask FileMode 覆盖文件系统设置的权限位(Windows 系统不支持)(默认值为 002)
--vfs-block-norm-dupes 如果同一目录中存在重复的文件名(规范化后),记录错误并隐藏重复项(可能会有性能开销)
--vfs-cache-max-age Duration 缓存中对象的最大未访问时间(默认值为 1 小时)
--vfs-cache-max-size SizeSuffix 缓存中对象的最大总大小(默认值为无限制)
--vfs-cache-min-free-space SizeSuffix 缓存所在磁盘的目标最小可用空间(默认值为无限制)
--vfs-cache-mode CacheMode 缓存模式:off|minimal|writes|full(默认值为 off)
--vfs-cache-poll-interval Duration 轮询缓存中过期对象的时间间隔(默认值为 1 分钟)
--vfs-case-insensitive 如果未找到文件名,查找不区分大小写的匹配项
--vfs-disk-space-total-size SizeSuffix 指定磁盘的总空间(默认值为无限制)
--vfs-fast-fingerprint 使用快速(不太准确)的指纹进行更改检测
--vfs-links 为 VFS 层将符号链接转换为带有 '.rclonelink' 扩展名的普通文件,反之亦然
--vfs-read-ahead SizeSuffix 在使用 full 缓存模式时,除了 --buffer-size 之外的额外预读量
--vfs-read-chunk-size SizeSuffix 以分块方式读取源对象(默认值为 128Mi)
--vfs-read-chunk-size-limit SizeSuffix 如果大于 --vfs-read-chunk-size,则在每次读取块后将块大小翻倍,直到达到限制('off' 表示无限制)(默认值为无限制)
--vfs-read-chunk-streams int 同时读取的并行流数量
--vfs-read-wait Duration 在进行定位操作之前等待按顺序读取的时间(默认值为 20 毫秒)
--vfs-refresh 在启动时在后台递归刷新目录缓存
--vfs-used-is-size rclone size 使用 rclone size 算法计算已使用空间大小
--vfs-write-back Duration 使用缓存时,文件最后一次使用后写回的时间(默认值为 5 秒)
--vfs-write-wait Duration 在给出错误之前等待按顺序写入的时间(默认值为 1 秒)
--volname string 设置卷名(仅 Windows 和 OSX 系统支持)
--write-back-cache 让内核在将写入数据发送给 rclone 之前进行缓冲(否则使用直写缓存)(Windows 系统不支持)
接下来将介绍与其他命令共享的选项。 此处未列出的全局选项,请参阅全局标志页面。
过滤器选项
用于过滤目录列表的标志
--delete-excluded 删除目标端中被排除在同步之外的文件
--exclude stringArray 排除符合指定模式的文件
--exclude-from stringArray 从文件中读取要排除的文件模式(使用 - 从标准输入读取)
--exclude-if-present stringArray 如果指定文件名存在,则排除该目录
--files-from stringArray 从文件中读取源文件名列表(使用 - 从标准输入读取)
--files-from-raw stringArray 从文件中读取源文件名列表,不对行进行任何处理(使用 - 从标准输入读取)
-f, --filter stringArray 添加文件过滤规则
--filter-from stringArray 从文件中读取文件过滤模式(使用 - 从标准输入读取)
--ignore-case 在过滤时忽略大小写(大小写不敏感)
--include stringArray 包含符合指定模式的文件
--include-from stringArray 从文件中读取要包含的文件模式(使用 - 从标准输入读取)
--max-age Duration 仅传输比指定时间(以秒或后缀 ms|s|m|h|d|w|M|y 表示)更新的文件(默认关闭)
--max-depth int 如果设置,则将递归深度限制为此值(默认 -1)
--max-size SizeSuffix 仅传输小于指定大小(以 KiB 或后缀 B|K|M|G|T|P 表示)的文件(默认关闭)
--metadata-exclude stringArray 排除符合指定模式的元数据
--metadata-exclude-from stringArray 从文件中读取要排除的元数据模式(使用 - 从标准输入读取)
--metadata-filter stringArray 添加元数据过滤规则
--metadata-filter-from stringArray 从文件中读取元数据过滤模式(使用 - 从标准输入读取)
--metadata-include stringArray 包含符合指定模式的元数据
--metadata-include-from stringArray 从文件中读取要包含的元数据模式(使用 - 从标准输入读取)
--min-age Duration 仅传输比指定时间(以秒或后缀 ms|s|m|h|d|w|M|y 表示)更旧的文件(默认关闭)
--min-size SizeSuffix 仅传输大于指定大小(以 KiB 或后缀 B|K|M|G|T|P 表示)的文件(默认关闭)
参见
- rclone serve - 通过协议为远程服务器提供服务。