HTTP Remote

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(最大可用空间)策略。

请参阅 不支持 rclone about 的后端列表rclone about