HTTP Remote
HTTP 远程存储是一种只读的远程存储,用于读取 Web 服务器上的文件。Web 服务器应提供文件列表,rclone 会读取这些列表并将其转换为远程存储。此功能已在常见的 Web 服务器(如 Apache、Nginx、Caddy)上进行了测试,并且很可能适用于大多数 Web 服务器的文件列表。(如果不适用,请提交一个问题或发送一个拉取请求!)
路径的指定方式为 remote:
或 remote:path
。
remote:
表示已配置的 URL,根据 URL 标准,其后的任何路径都将相对于此 URL 进行解析。这意味着,如果远程 URL 为 https://beta.rclone.org/branch
,路径为 fix
,则解析后的 URL 将为 https://beta.rclone.org/branch/fix
;而如果路径为 /fix
,则解析后的 URL 将为 https://beta.rclone.org/fix
,因为绝对路径是从域名的根目录开始解析的。
如果 remote:
后面的路径以 /
结尾,则会被假定为指向一个目录。如果路径不以 /
结尾,则会发送一个 HEAD 请求,并根据响应来决定将其视为文件还是目录(使用 -vv
运行以查看详细信息)。当指定了 –http-no-head 时,不以 /
结尾的路径将始终被假定为文件。如果 rclone 错误地将路径假定为文件,解决方法是指定以 /
结尾的路径。当你确定路径是一个目录时,以 /
结尾总是更好的,因为这样可以避免初始的 HEAD 请求。
若要仅下载单个文件,使用 copyurl 会更方便。
配置
以下是一个如何创建名为 remote
的远程存储的示例。首先运行:
rclone config
这将引导你完成一个交互式的设置过程:
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> remote
Type of storage to configure.
Choose a number from below, or type in your own value
[snip]
XX / HTTP
\ "http"
[snip]
Storage> http
URL of http host to connect to
Choose a number from below, or type in your own value
1 / Connect to example.com
\ "https://example.com"
url> https://beta.rclone.org
Remote config
Configuration complete.
Options:
- type: http
- url: https://beta.rclone.org
Keep this "remote" remote?
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
remote http
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
这个远程存储名为 remote
,现在可以像这样使用它。
查看所有顶级目录
rclone lsd remote:
列出目录的内容
rclone ls remote:directory
将远程的 directory
同步到 /home/local/directory
,并删除多余的文件。
rclone sync --interactive remote:directory /home/local/directory
只读
这个远程存储是只读的 —— 你不能向 HTTP 服务器上传文件。
修改时间
大多数 HTTP 服务器存储的时间精度为 1 秒。
校验和
不存储校验和。
无配置文件使用
由于 HTTP 远程存储只有一个配置参数,因此在没有配置文件的情况下也很容易使用:
rclone lsd --http-url https://beta.rclone.org :http:
或者:
rclone lsd :http,url='https://beta.rclone.org':
标准选项
以下是 HTTP 远程存储特有的标准选项。
–http-url
要连接的 HTTP 主机的 URL。
例如 “https://example.com”,或者使用用户名和密码时可以是 “https://user:[email protected]”。
属性:
- 配置项:url
- 环境变量:RCLONE_HTTP_URL
- 类型:字符串
- 必需:是
–http-no-escape
不对路径名中的 URL 元字符进行转义。
属性:
- 配置项:no_escape
- 环境变量:RCLONE_HTTP_NO_ESCAPE
- 类型:布尔值
- 默认值:false
高级选项
以下是 HTTP 远程存储特有的高级选项。
–http-headers
为所有事务设置 HTTP 头。
使用此选项为所有事务设置额外的 HTTP 头。
输入格式为逗号分隔的键值对列表。可以使用标准的 CSV 编码。
例如,要设置一个 Cookie,可以使用 ‘Cookie,name=value’,或者 ‘“Cookie”,“name=value”’。
你可以设置多个头,例如 ‘“Cookie”,“name=value”,“Authorization”,“xxx”’。
属性:
- 配置项:headers
- 环境变量:RCLONE_HTTP_HEADERS
- 类型:逗号分隔列表
- 默认值:无
–http-no-slash
如果网站的目录不以 /
结尾,请设置此选项。
如果目标网站的目录末尾不使用 /
,请使用此选项。
路径末尾的 /
是 rclone 通常用于区分文件和目录的方式。如果设置了此标志,rclone 将把所有 Content-Type 为 text/html 的文件视为目录,并从中读取 URL,而不是下载它们。
请注意,这可能会导致 rclone 将真正的 HTML 文件与目录混淆。
属性:
- 配置项:no_slash
- 环境变量:RCLONE_HTTP_NO_SLASH
- 类型:布尔值
- 默认值:false
–http-no-head
不使用 HEAD 请求。
HEAD 请求主要用于在目录列表中查找文件大小。 如果你的网站加载非常缓慢,你可以尝试此选项。 通常,rclone 会对目录列表中的每个潜在文件发送一个 HEAD 请求,以:
- 查找其大小
- 检查它是否真的存在
- 检查它是否是一个目录
如果你设置了此选项,rclone 将不会发送 HEAD 请求。这意味着目录列表会快得多,但 rclone 将无法获取任何文件的时间或大小,并且列表中可能会包含一些不存在的文件。
属性:
- 配置项:no_head
- 环境变量:RCLONE_HTTP_NO_HEAD
- 类型:布尔值
- 默认值:false
–http-description
远程存储的描述。
属性:
- 配置项:description
- 环境变量:RCLONE_HTTP_DESCRIPTION
- 类型:字符串
- 必需:否
后端命令
以下是 HTTP 后端特有的命令。
使用以下命令运行它们:
rclone backend COMMAND remote:
下面的帮助信息将解释每个命令需要哪些参数。
有关如何传递选项和参数的更多信息,请参阅 backend 命令。
这些命令可以在运行的后端上使用 rc 命令 backend/command 执行。
set
用于更新配置参数的设置命令。
rclone backend set remote: [选项] [<参数>+]
这个设置命令可用于更新正在运行的 HTTP 后端的配置参数。
使用示例:
rclone backend set remote: [-o 选项名=选项值] [-o 选项名2=选项值2]
rclone rc backend/command command=set fs=remote: [-o 选项名=选项值] [-o 选项名2=选项值2]
rclone rc backend/command command=set fs=remote: -o url=https://example.com
选项键的名称与配置文件中的名称相同。
当使用新参数调用此命令时,它会重新建立与 HTTP 后端的连接。只需传递新参数,因为值将默认为当前使用的值。
该命令不返回任何内容。
限制
HTTP 后端不支持 rclone about
命令。没有此功能的后端无法确定 rclone 挂载的可用空间,也不能在 rclone 联合远程存储中使用 mfs
(最大可用空间)策略。