rclone_mount命令

5,436次阅读
没有评论

共计 15428 个字符,预计需要花费 39 分钟才能阅读完成。


版本介绍: v1.33

rclone mount

将远程作为文件系统挂载在一个挂载点上.

简介

rclone mount允许Linux、FreeBSD、macOS和Windows使用FUSE将任何Rclone的云存储系统作为一个文件系统进行挂载。.

首先使用rclone config来设置你的远程。 用 "rclone ls "等检查它的工作情况。.

在Linux和macOS上,你可以在前台或后台(又称守护神)模式下运行mount。Mount默认在前台模式下运行。使用--daemon标志来强制后台模式。在Windows上,你可以只在前台运行mount,该标志被忽略。.

在后台模式下,rclone就像一个普通的Unix挂载程序:主程序启动,产生后台rclone进程来设置和维护挂载,等待成功或超时,并以适当的代码退出(如果失败,则杀死子进程)。.

在Linux/MacOS/FreeBSD上,像这样开始挂载,其中/path/to/local/mount是一个空的存在的目录。:

rclone mount remote:path/to/files /path/to/local/mount

在Windows上,你可以用不同的方式启动挂载。详见下文。如果从控制台窗口交互式地使用前台挂载,rclone将为挂载提供服务并占用控制台,因此应使用另一个窗口来处理挂载,直到rclone被中断,例如按Ctrl-C键。.

下面的例子将挂载到一个自动分配的驱动器,挂载到特定的盘符X:,挂载到路径C:path\parent\mount(其中父目录或驱动器必须存在,而挂载必须**不存在,并且在[挂载为网络驱动器](#mounting-modes-on-windows)时不支持),最后一个例子将挂载为网络共享cloud\remote`并映射到一个自动指定驱动器:

rclone mount remote:path/to/files *
rclone mount remote:path/to/files X:
rclone mount remote:path/to/files C:\path\parent\mount
rclone mount remote:path/to/files \\cloud\remote

当程序在前台模式下结束时,无论是通过Ctrl+C还是收到SIGINT或SIGTERM信号,都应该自动停止挂载。.

当在后台模式下运行时,用户将不得不手动停止挂载。:

# Linux
fusermount -u /path/to/local/mount
# OS X
umount /path/to/local/mount

umount操作可能会失败,例如,当mountpoint繁忙的时候.
当这种情况发生时,用户有责任手动停止挂载。.

挂载的文件系统的大小将根据从远程获取的信息来设置,与 rclone about 命令返回的信息相同。具有无限存储空间的远程设备可能只报告已使用的大小,然后假定有一个额外的1 PiB的自由空间。如果远程设备根本不支持about功能,那么1PiB将被设置为总大小和可用大小。.

在Windows上安装

要在Windows上运行rclone mount,你需要下载并安装WinFsp.

WinFsp是一个开源的Windows文件系统代理,它使得为Windows编写用户空间文件系统变得容易。 它提供了一个FUSE仿真层,rclone将其与cgofuse结合使用。这两个软件包都是由Bill Zissimopoulos开发的,他在为Windows实现rclone mount的过程中提供了很大帮助。.

windows上的安装模式

与其他操作系统不同,微软Windows为网络和固定驱动器提供了不同的文件系统类型。它对访问进行了优化,假设固定磁盘驱动器是快速和可靠的,而网络驱动器的延迟相对较高,可靠性较低。一些设置也可以区分这两种类型,例如,Windows资源管理器应该只显示图标,而不是为网络驱动器上的图像和视频文件创建预览缩略图。.

在大多数情况下,rclone默认会将远程硬盘挂载为一个正常的、固定的磁盘驱动器.
然而,你也可以选择把它挂载为一个远程网络驱动器,通常被描述为一个网络共享。如果你使用默认的固定驱动器模式挂载rclone远程驱动器,并遇到意外的程序错误、冻结或其他问题,可以考虑改挂为网络驱动器.

当挂载为一个固定的磁盘驱动器时,你可以挂载到一个未使用的盘符,或者挂载到一个代表不存在的父目录或驱动器的子目录的路径。使用特殊值*会告诉rclone自动分配下一个可用的盘符,从Z:开始向后移动.
Examples:

rclone mount remote:path/to/files *
rclone mount remote:path/to/files X:
rclone mount remote:path/to/files C:\path\parent\mount
rclone mount remote:path/to/files X:

选项--volname可以用来为加载的文件系统设置一个自定义的卷名。默认是使用远程名称和路径.

要挂载为网络驱动器,你可以在挂载命令中添加选项--network-mode。在这种模式下,不支持挂载到目录路径,这是Windows对结点的限制,所以远程必须始终挂载到一个盘符。.

rclone mount remote:path/to/files X: --network-mode

--volname指定的卷名将被用来创建网络共享路径。.
一个完整的UNC路径,如cloud\remote,可选择路径cloud\remotemadeuppath,将被原样使用。任何其他字符串都将被用作共享部分,在默认的前缀\server之后。 如果没有指定卷名,那么将使用\servershare。 当你挂载多个驱动器时,你必须确保卷名是唯一的,否则挂载命令将失败。共享名称将被视为映射驱动器的卷标,显示在Windows Explorer中,而完整的server\share将被net use报告为远程UNC路径,就像普通的网络驱动器映射一样。.

如果你用--volname指定一个完整的网络共享UNC路径,这将隐含地设置--network-mode选项,所以下面两个例子有相同的结果:

rclone mount remote:path/to/files X: --network-mode
rclone mount remote:path/to/files X: --volname \\server\share

你也可以指定网络共享的UNC路径作为加载点本身。然后,rclone会自动分配一个盘符,和*一样,并将其作为挂载点,而使用指定的UNC路径作为卷名,就像用--volname选项指定的那样。这也将隐含地设置--network-mode选项。这意味着下面两个例子的结果是一样的:

rclone mount remote:path/to/files \\cloud\remote
rclone mount remote:path/to/files * --volname \\cloud\remote

还有一种方法可以启用网络模式,并设置共享路径,那就是直接传递 "本地 "libfuse/WinFsp选项:--fuse-flag --VolumePrefix=server/share。注意,在这种情况下,路径必须只有一个反斜杠的前缀.

注: 在以前的rclone版本中,这是唯一支持的方法。.

阅读更多关于驱动器映射的信息

另见下面的限制部分.

Windows文件系统的权限

Windows上的FUSE仿真层必须在FUSE中使用的基于POSIX的权限模型和Windows中使用的基于访问控制列表(ACL)的权限模型之间进行转换。.

挂载的文件系统通常会在其访问控制列表(ACL)中获得三个条目,代表POSIX权限范围的权限。业主、组和其他.
默认情况下,所有者和组将取自当前用户,内置组 "Everyone "将用来代表其他人。用户/组可以通过FUSE选项 "UserName "和 "GroupName "来定制,例如:-o UserName=user123 -o GroupName="Authenticated Users"。 每个条目的权限将根据options --dir-perms--file-perms来设置,其数值为传统数字符号.

默认权限对应于--file-perms 0666 --dir-perms 0777,即对每个人的读写权限。这意味着你将不能从挂载中启动任何程序。为了能够这样做,你必须添加执行权限,例如--file-perms 0777 --dir-perms 0777,将其添加到所有人。如果程序需要写文件,你有可能也要启用VFS文件缓存(也见限制).

请注意,权限的映射并不总是微不足道的,你在Windows资源管理器中看到的结果可能与你预期的不完全一样。 例如,当设置一个包括写权限的值时,这将被映射到单个权限 "写属性"、"写数据 "和 "附加数据",但不是 "写扩展属性"。然后Windows将显示为基本权限 "Special "而不是 "Write",因为 "Write "包括 "写扩展属性 "权限.

如果你使用--file-perms 0600 --dir-perms 0700设置只允许所有者访问的POSIX权限,用户组和内置的 "Everyone "组仍然会被赋予一些特殊的权限,比如 "读取属性 "和 "读取权限",在Windows中。这样做是出于兼容性的考虑,例如,允许没有额外权限的用户能够像在UNIX中那样读取文件的基本元数据。可能出现的一种情况是,其他程序(不正确地)将其解释为每个人都可以访问该文件。例如,一个SSH客户端可能会警告说 "未受保护的私钥文件".

WinFsp 2021(1.9版)引入了一个新的FUSE选项 "FileSecurity",它允许使用SDDL完整地指定文件安全描述符。.
有了这个,你可以通过指定`-o FileSecurity="D:P(A;;FA;;OW) "来解决诸如上述 "不受保护的私钥文件 "的问题,文件的所有访问(FA)由所有者(OW)承担。.

windows的注意事项

以管理员身份创建的驱动器对其他账户是不可见的,即使是通过用户账户控制(UAC)功能提升为管理员的账户也是如此。这样做的结果是,如果你从以管理员身份运行的命令提示符挂载到一个盘符,然后试图从Windows资源管理器(不以管理员身份运行)访问同一个驱动器,你将无法看到挂载的驱动器.

如果你不需要从以管理权限运行的应用程序中访问该驱动器,最简单的方法是总是从一个非高级的命令提示符中创建加载。.

为了使创建映射驱动器的用户账户可用,无论是否升高,有一个特殊的Windows设置,称为链接连接,可以启用.

也可以通过以内置的SYSTEM账户运行创建驱动器的进程,使系统中的每个人都能使用驱动器挂载。 有几种方法可以做到这一点。一种是使用命令行工具PsExec,来自微软的Sysinternals套件,它有选项-s可以以SYSTEM账户的身份启动进程。另一种方法是通过配置为以SYSTEM账户运行的Windows预定任务或Windows服务来运行挂载命令。第三种方法是使用WinFsp.Launcher infrastructure).
注意,当以其他用户身份运行rclone时,它不会使用你的配置文件,除非你用--config选项告诉它。 在安装文档中阅读更多内容。.

请注意,映射到一个目录路径,而不是一个盘符,不会受到同样的限制.

限制条件

如果不使用--vfs-cache-mode,这只能按顺序写入文件,它只能在读取时寻找。 这意味着许多应用程序在没有--vfs-cache-mode writes--vfs-cache-mode full的情况下无法使用他们在rclone mount上的文件。 更多信息见VFS File Caching部分.

基于桶的远程(例如Swift、S3、Google Compute Storage、B2)不支持空目录的概念,所以空目录一旦从目录缓存中掉出来,就会有消失的趋势。.

当 "rclone mount "在Unix上以"–daemon "标志被调用时,rclone主程序将等待后台挂载准备就绪,或者等待"–daemon-wait "标志所指定的超时时间。在Linux上,它可以使用ProcFS检查挂载状态,所以该标志实际上设置了最大的等待时间,而实际的等待时间可能更短。在macOS / BSD上,等待的时间是恒定的,检查只在最后进行。我们建议你在macOS上合理地设置等待时间.

目前只支持Linux、FreeBSD、OS X和Windows。.

rclone mount vs rclone sync/copy

文件系统希望事情是100%可靠的,而云存储系统离100%可靠还有一段距离。rclone的同步/拷贝命令通过大量的重试来应对这个问题。 然而,rclone mount不能以同样的方式使用重试,而不制作上传的本地副本。请看VFS文件缓存,以了解使mount更可靠的解决方案。.

属性缓存

你可以使用标志--attr-timeout来设置内核对目录项的属性(大小、修改时间等)进行缓存的时间。.

默认值是`1s’,它对文件的缓存时间刚刚好,以避免从内核对rclone进行过多的回调。.

理论上,0s应该是文件系统的正确值,因为文件系统可以在内核的控制之外改变。然而,这导致了很多问题,比如rclone使用了太多的内存rclone不向samba提供文件列出目录的时间过长.

内核可以在--attr-timeout给出的时间内缓存一个文件的信息。如果远程文件在这个窗口中改变了长度,你可能会看到损坏。 它将显示为一个被截断的文件或者一个在末端有垃圾的文件。 在--attr-timeout 1s的情况下,这是很不可能的,但不是不可能。 你设置的`–attr-timeout’越高,就越有可能发生。 默认设置为 "1s "是最低的设置,可以缓解上述问题.

如果你把它设置得更高(比如说10s1m),那么内核将减少回调rclone的次数,使其更有效率,但是有更多的机会出现上述腐败问题。.

如果文件不在rclone的控制范围内改变,那么就不会有损坏的可能。.

这与在mount.fuse中设置attr_timeout选项相同.

过滤器

注意,所有的rclone过滤器都可以用来选择挂载中可见的文件子集。.

systemd

当以systemd服务的形式运行rclone mount时,可以使用Type=notify。在这种情况下,服务将在挂载点成功建立后进入启动状态。 在这种模式下,指定了rclone mount服务的单位将立即看到所有文件和文件夹.

注意,systemd 在运行挂载单元时不需要任何环境变量,包括 PATHHOME。这意味着tilde (~)扩展不起作用,你应该通过rclone参数明确提供--config--cache-dir作为绝对路径。.
由于挂载需要fusermount程序,在这种情况下,rclone将使用/bin:/usr/bin的后备PATH。请确保fusermount在这个PATH中存在。.

Rclone作为Unix挂载辅助工具

Unix的核心程序/bin/mount通常接受-t FSTYPE参数,然后运行/sbin/mount.FSTYPE辅助程序,将挂载选项作为-o key=val,...-opt=...传递给它。自动挂载(经典或systemd)的行为方式与此类似.

rclone默认期望GNU风格的标志--key val。要把它作为一个挂载助手来运行,你应该把rclone二进制链接到/sbin/mount.rclone和可选的/usr/bin/rclonefs,例如ln -s /usr/bin/rclone /sbin/mount.rclone,rclone会发现它并适当地翻译命令行参数.

现在你可以像这样运行经典坐骑:

mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem

或创建systemd挂载单元:

# /etc/systemd/system/mnt-data.mount
[Unit]
After=network-online.target
[Mount]
Type=rclone
What=sftp1:subdir
Where=/mnt/data
Options=rw,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone.conf,cache-dir=/var/rclone

可以选择伴随着systemd自动挂载单元

# /etc/systemd/system/mnt-data.automount
[Unit]
After=network-online.target
Before=remote-fs.target
[Automount]
Where=/mnt/data
TimeoutIdleSec=600
[Install]
WantedBy=multi-user.target

or add in /etc/fstab a line like

sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0

记得提供明确的 "config=…,cache-dir=… "作为运行时没有 "HOME "的挂载单元的变通方法。.

Rclone在mount helper模式下会用逗号分割-o参数,用-替换_,并在-前面加上-来获得命令行标志。包含逗号或空格的选项可以用单引号或双引号包裹。同类型的外引号内的任何内引号都应该是双倍的。.

挂载选项的语法包括一些额外的选项,特别处理:

  • env.NAME=VALUE将为挂载进程设置一个环境变量。 这有助于Automountd和Systemd.mount,它们不允许为挂载助手设置自定义环境。.
    通常你会使用env.HTTPS_PROXY=proxy.host:3128env.HOME=/root
  • command=cmount可以用来运行cmount或任何其他rclone命令,而不是默认的mount。.
  • args2env将通过环境变量而不是命令行参数将挂载选项传递给后台运行的挂载辅助程序。这允许隐藏诸如pspgrep等命令的秘密。.
  • vv...将被转换为适当的--verbose=N
  • x-systemd.automount', _netdev’, `nosuid’等标准挂载选项只适用于Automountd,而被rclone忽略。.

VFS – 虚拟文件系统

这个命令使用VFS层。它将rclone使用的云存储对象调整为看起来更像一个磁盘文件系统的东西。.

云存储对象有很多属性,与磁盘文件不同–你不能扩展它们,也不能向它们中间写入,所以VFS层必须处理这个问题。因为没有一个正确的方法,所以有多种选择,解释如下.

VFS层还实现了一个目录缓存–它在内存中缓存了关于文件和目录的信息(但不是数据)。.

VFS目录缓存

使用--dir-cache-time标志,你可以控制一个目录在多长时间内被认为是最新的而不从后端刷新。通过VFS所做的改变将立即出现,或者使缓存失效.

--dir-cache-time duration   缓存目录条目的时间(默认为50秒)。
--poll-interval duration    轮询变化之间的等待时间。必须比dir-cache-time小。仅在支持的远程设备上。设置为0表示禁用(默认为1m0s)。

然而,如果配置的后端不支持轮询更改,那么通过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文件缓冲

缓冲区大小 "标志决定了将用于提前缓冲数据的内存量。.

每个打开的文件将尝试在内存中一直保持指定的数据量。缓冲的数据被绑定在一个开放文件上,不会被共享。.

这个标志是每个开放文件所使用的内存的上限。 缓冲区只对已下载但尚未读取的数据使用内存。如果缓冲区是空的,将只使用少量的内存。.

rclone用于缓冲的最大内存可以达到--缓冲区大小*开放文件。.

VFS文件缓存

这些标志控制VFS的文件缓存选项。文件缓存是必要的,以使VFS层看起来与普通文件系统兼容。它可以在牺牲一些兼容性的前提下被禁用.

例如,如果你想同时对一个文件进行读写,你需要启用VFS缓存。 更多细节见下文.

注意,VFS缓存与缓存后端是分开的,你可能会发现你需要一个或另一个,或者两个都需要.

--cache-dir string                   rclone将用于缓存的目录.
--vfs-cache-mode CacheMode           缓存模式关闭|最小|写入|充满(默认关闭)。
--vfs-cache-max-age duration         缓存中对象的最大年龄(默认为1h0m0s)。
--vfs-cache-max-size SizeSuffix      缓存中对象的最大总尺寸(默认为关闭)。
--vfs-cache-poll-interval duration   轮询缓存中过期对象的时间间隔(默认为1分钟)。
--vfs-write-back duration            使用缓存时,最后一次使用后回写文件的时间(默认为5s)。

如果与-vv一起运行,rclone将打印文件缓存的位置。 文件存储在用户缓存文件区,这与操作系统有关,但可以用--cache-dir控制,或设置适当的环境变量.

缓存有4种不同的模式,由--vfs-cache-mode选择。 缓存模式越高,rclone的兼容性就越强,代价是占用磁盘空间。.

注意,只有当文件被关闭,并且在--vfs-write-back秒内没有被访问时,文件才会被回写到远程。如果rclone退出或死亡时还没有上传文件,那么下次运行rclone时,这些文件将以相同的标志被上传。

如果使用"–vfs-cache-max-size",注意缓存可能会超过这个大小,原因有二。 首先,因为它只是每隔--vfs-cache-poll-interval检查一次。 其次,因为打开的文件不能从缓存中驱逐出来.

如果使用--vfs-cache-mode > off,你不应该运行两份rclone,使用相同的VFS缓存和相同或重叠的远程。 如果你这样做,有可能导致数据损坏。你可以通过使用--cache-dir给每个rclone自己的缓存层次来解决这个问题。如果使用的远程不重叠,你就不需要担心这个问题。.

–vfs-cache-mode off

在这种模式下(默认),缓存将直接从远程读取并直接写到远程,而不在磁盘上缓存任何东西。.

这将意味着一些操作是不可能的

  • 文件不能同时被打开进行读取和写入
  • 为写而打开的文件不能被搜索到
  • 为写而打开的现有文件必须有O_TRUNC设置
  • 用O_TRUNC打开读的文件将被打开只写。
  • 只为写而打开的文件将像提供O_TRUNC一样表现。
  • 开放模式O_APPEND、O_TRUNC被忽略。
  • 如果上传失败,就不能重试。

–vfs-cache-mode minimal

这与 "关闭 "非常相似,只是为读和写打开的文件将被缓冲到磁盘。 这意味着为写而打开的文件将有更多的兼容性,但使用最小的磁盘空间。.

这些操作是不可能的

  • 只为写而打开的文件不能被搜索到
  • 为写而打开的现有文件必须有O_TRUNC设置
  • 只为写而打开的文件将忽略O_APPEND, O_TRUNC
  • 如果上传失败,就不能重试。

–vfs-cache-mode writes

在这种模式下,为只读而打开的文件仍然直接从远程读取,只写和读/写文件会先缓冲到磁盘上。.

这种模式应该支持所有正常的文件系统操作.

如果上传失败,将以指数级增加的时间间隔重试,最长为1分钟。.

–vfs-cache-mode full

在这种模式下,所有的读和写都被缓冲到磁盘上或从磁盘上读。当从远程读取数据时,也会缓冲到磁盘。.

在这种模式下,缓存中的文件将是稀疏的文件,rclone将跟踪它所下载的文件的哪些位。.

因此,如果一个应用程序只读取每个文件的开始部分,那么rclone将只对文件的开始部分进行缓冲。这些文件在缓存中看起来是全尺寸的,但它们将是稀疏的文件,只有被下载的数据存在其中。.

这种模式应该支持所有正常的文件系统操作,其他方面与--vfs-cache-mode写法相同。.

当读取一个文件时,rclone会提前读取--buffer-size--vfs-read-ahead字节。 缓冲区大小 "在内存中缓冲,而 "vfs-read-ahead "则在磁盘中缓冲。.

当使用这种模式时,建议不要把 "缓冲区大小 "设置得太大,如果需要的话,把 "vfs-read-ahead "设置得太大。.

重要的是并非所有文件系统都支持稀疏文件。特别是FAT/exFAT不支持。如果缓存目录在一个不支持稀疏文件的文件系统上,Rclone将表现得非常糟糕,如果检测到稀疏文件,它将记录一个ERROR消息。.

指纹识别

VFS的各个部分使用指纹来查看本地文件副本相对于远程文件是否有变化。指纹是由:

  • size
  • modification time
  • hash

在一个对象上可用的地方.

在某些后端,这些属性的读取速度很慢(它们需要对每个对象进行额外的API调用,或对每个对象进行额外的工作)。.

例如,hash'在local’和sftp'后端中很慢,因为它们必须读取整个文件并进行哈希运算,而modtime’在s3'、swift’、ftp'和qinqstor’后端中很慢,因为它们需要进行额外的API调用来获取数据。.

如果你使用--vfs-fast-fingerprint标志,那么rclone将不包括指纹中的慢速操作。这使得指纹的准确性降低,但速度更快,并将改善缓存文件的打开时间。.

如果你在locals3swift后端上运行vfs缓存,那么建议使用此标记.

注意,如果你改变这个标志的值,缓存中文件的指纹可能会失效,文件将需要重新下载。.

VFS分块阅读

当rclone从远程读取文件时,它是分块读取的。这意味着,rclone不是请求读取整个文件,而是读取指定的块。 这可以减少某些远程设备的下载配额,因为它只请求实际读取的远程设备的块,但代价是增加了请求的数量。.

这些标志控制着分块:

--vfs-read-chunk-size SizeSuffix        分块读取源对象(默认128M)。
--vfs-read-chunk-size-limit SizeSuffix  最大的分块翻倍大小(默认为关闭)。

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性能

这些标志可用于启用/禁用VFS的功能,以满足性能或其他原因。也请参见分块阅读功能.

特别是S3和Swift从--no-modtime标志中受益匪浅(或者使用--use-server-modtime,效果略有不同),因为每次读取修改时间都需要一个事务.

--no-checksum     不要在上传/下载时比较校验和。
--no-modtime      不要读/写修改时间(可以加快进度)。
--no-seek         不允许在文件中寻找.
--read-only       只允许只读访问.

有时,rclone会被不按顺序地交付读或写。rclone不会去寻找,而是会在短时间内等待按顺序的读或写到来。这些标志只在不使用磁盘上的缓存文件时才会生效.

--vfs-read-wait duration   在寻找之前等待顺序内读的时间(默认为20ms)。
--vfs-write-wait duration  出错前等待顺序写入的时间(默认为1s)。

当使用VFS写缓存(--vfs-cache-mode,值为写或满)时,可以设置全局标志--transfers,以调整从缓存中修改的文件的并行上传数量(相关的全局标志--checkers对VFS没有影响)。.

--transfers int  平行运行的文件传输的数量(默认为4)。

VFS案例敏感度

Linux文件系统是区分大小写的:两个文件只能有大小写的不同,在打开一个文件时必须使用准确的大小写。.

现代Windows中的文件系统对大小写不敏感,但保留了大小写:尽管现有的文件可以使用任何大小写打开,但创建文件时使用的确切大小写被保留下来,可供程序查询。
不允许同一目录中的两个文件仅有大小写的差异.

通常情况下,macOS上的文件系统是不区分大小写的。有可能使macOS文件系统区分大小写,但这不是默认的。.

--vfs-case-insensitive VFS标志控制rclone如何处理这两种情况。如果它的值是 "false",rclone将文件名按原样传给远程。如果该标志为 "true"(或者在命令行中没有出现数值),rclone可能会执行 "修复",解释如下.

用户可以指定一个文件名来打开/删除/重命名等,其大小写与存储在远程的文件不同。如果一个参数指的是具有完全相同名称的现有文件,那么将使用磁盘上现有文件的大小写。然而,如果没有找到一个完全相同的文件名,而只是存在一个大小写不同的文件名,rclone将透明地修复这个名字。这种修正只发生在请求一个现有文件的时候。rclone重新创建的文件名的大小写敏感性由底层远程控制。.

注意运行rclone(目标)的操作系统的大小写敏感性可能与rclone(源)所呈现的文件系统的大小写敏感性不同。.
该标志控制是否执行 "修复 "以满足目标.

如果该标志没有在命令行中提供,那么它的默认值取决于运行rclone的操作系统。在Windows和macOS上为 "true",否则为 "false"。如果该标志没有提供值,那么它就是 "true".

VFS磁盘选项

这个标志允许你手动设置关于文件系统的统计数据。 当这些统计数据不能被自动正确读取时,它可能很有用。.

--vfs-disk-space-total-size    手动设置总的磁盘空间大小(例如:256G,默认:-1)。

已用字节的备用报告

一些后端,特别是S3,不报告所使用的字节数。 如果你需要在文件系统上运行df'时得到这个信息,那么就给rclone传递标志–vfs-used-is-size’。 设置这个标志后,rclone将扫描整个远程,类似于`rclone size’,并自己计算总使用空间,而不是依赖后端报告这个信息。.

_WARNING._与rclone size相反,这个标志忽略了过滤器,所以结果是准确的。然而,这是非常低效的,可能会花费大量的API调用导致额外的费用。把它作为最后的手段,并且只在有缓存的情况下使用。.

rclone mount remote:path /path/to/mountpoint [flags]

选项

      --allow-non-empty                        允许在一个非空目录上挂载(在Windows上不支持)。
      --allow-other                            允许其他用户访问(在Windows上不支持)。
      --allow-root                             允许对根用户的访问(在Windows上不支持)。
      --async-read                             使用异步读取(在Windows上不支持)(默认为true)。
      --attr-timeout Duration                  文件/目录属性被缓存的时间(默认为1秒)。
      --daemon                                 在后台运行mount并退出父进程(由于后台输出被抑制,使用-log-file与-log-format=pid,...来监控)(在Windows上不支持)。
      --daemon-timeout Duration                rclone响应内核的时间限制(Windows上不支持)(默认为0s)。
      --daemon-wait Duration                   等待守护进程准备好挂载的时间(在Linux上为最长时间,在OSX/BSD上为恒定睡眠时间)(在Windows上不支持)(默认为1m0s)。
      --debug-fuse                             调试FUSE内部结构 - 需要 -v
      --default-permissions                    使内核根据文件模式强制执行访问控制(在Windows上不支持)。
      --devname string                         设置设备名称 - 默认为remote:path
      --dir-cache-time Duration                缓存目录条目的时间(默认为50秒)。
      --dir-perms FileMode                     目录权限(默认为0777)。
      --file-perms FileMode                    文件权限(默认为0666)。
      --fuse-flag stringArray                  将直接传递给libfuse/WinFsp的标志或参数(如果需要,可重复)。
      --gid uint32                             覆盖由文件系统设置的gid字段(在Windows上不支持)(默认为1000)。
  -h, --help                                   help for mount
      --max-read-ahead SizeSuffix              可以预取的连续读取的字节数(在Windows上不支持)(默认128Ki)。
      --network-mode                           挂载为远程网络驱动器,而不是固定磁盘驱动器(仅在Windows上支持)。
      --no-checksum                            上/下载时不要比较校验和
      --no-modtime                             不要读/写修改时间(可以加快速度)。
      --no-seek                                不允许在文件中寻找
      --noappledouble                          忽略Apple Double(._)和.DS_Store文件(仅在OSX上支持)(默认为true)。
      --noapplexattr                           忽略所有 "com.apple.*"扩展属性(仅在OSX上支持)。
  -o, --option stringArray                     libfuse/WinFsp的选项(如果需要,请重复)。
      --poll-interval Duration                 轮询变化之间的等待时间,必须小于dir-cache-time,并且只在支持的远程设备上(设置0为禁用)(默认为1m0s)。
      --read-only                              只允许只读访问
      --uid uint32                             覆盖由文件系统设置的uid字段(在Windows上不支持)(默认为1000)。
      --umask int                              覆盖文件系统设置的权限位(Windows上不支持)(默认为2)。
      --vfs-cache-max-age Duration             缓存中对象的最大年龄(默认为1h0m0s)。
      --vfs-cache-max-size SizeSuffix          缓存中对象的最大总尺寸(默认为关闭)。
      --vfs-cache-mode CacheMode               缓存模式关闭|最小|写入|充满(默认关闭)。
      --vfs-cache-poll-interval Duration       轮询缓存中过期对象的时间间隔(默认为1分钟)。
      --vfs-case-insensitive                   如果没有找到文件名,就找一个不区分大小写的匹配。
      --vfs-disk-space-total-size SizeSuffix   指定磁盘的总空间(默认关闭)。
      --vfs-fast-fingerprint                   使用快速(不太准确)的指纹进行变化检测
      --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-wait Duration                 在寻找之前等待顺序内读的时间(默认为20ms)。
      --vfs-used-is-size rclone size           使用rclone大小算法来确定Used大小
      --vfs-write-back Duration                使用缓存时,最后一次使用后回写文件的时间(默认为5s)。
      --vfs-write-wait Duration                出错前等待顺序写入的时间(默认为1s)。
      --volname string                         设置卷的名称(仅在Windows和OSX支持)。
      --write-back-cache                       在向rclone发送之前,先进行内核缓冲区的写入(如果不这样做,就会使用贯穿式缓存)(Windows上不支持)。

关于这里没有列出的全局选项,请参见全局标志页.

另见

  • rclone – 显示对rclone命令、标志和后端的帮助.
正文完
 2
rclone中文站
版权声明:本站原创文章,由 rclone中文站 2023-02-26发表,共计15428字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)