HiDrive

HiDrive

路径指定为 remote:path

路径可以按需设置深度,例如 remote:directory/subdirectory

HiDrive 的初始设置需要从 HiDrive 获取一个令牌,你需要在浏览器中完成此操作。rclone config 会引导你完成整个过程。

配置

以下是一个如何创建名为 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 / HiDrive
   \ "hidrive"
[snip]
Storage> hidrive
OAuth Client Id - Leave blank normally.
client_id>
OAuth Client Secret - Leave blank normally.
client_secret>
Access permissions that rclone should use when requesting access from HiDrive.
Leave blank normally.
scope_access>
Edit advanced config?
y/n> n
Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=xxxxxxxxxxxxxxxxxxxxxx
Log in and authorize rclone for access
Waiting for code...
Got code
Configuration complete.
Options:
- type: hidrive
- token: {"access_token":"xxxxxxxxxxxxxxxxxxxx","token_type":"Bearer","refresh_token":"xxxxxxxxxxxxxxxxxxxxxxx","expiry":"xxxxxxxxxxxxxxxxxxxxxxx"}
Keep this "remote" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

你应该意识到,OAuth 令牌可用于访问你的账户,因此不应与他人共享。 有关更多信息,请参阅以下部分

有关如何在没有互联网浏览器的机器上进行设置的说明,请参阅远程设置文档

请注意,rclone 会在你的本地机器上运行一个 Web 服务器,用于收集 HiDrive 返回的令牌。这个 Web 服务器仅在打开浏览器到你获得验证码的这段时间内运行。 Web 服务器运行在 http://127.0.0.1:53682/。 如果本地端口 53682 受到防火墙保护,你可能需要临时解除防火墙限制以完成授权。

配置完成后,你可以像这样使用 rclone

列出 HiDrive 根文件夹顶级目录:

rclone lsd remote:

列出 HiDrive 文件系统中的所有文件:

rclone ls remote:

将本地目录复制到 HiDrive 上名为 backup 的目录:

rclone copy /home/source remote:backup

保护你的令牌安全

任何 OAuth 令牌都会以未加密的文本形式存储在 rclone 的远程配置文件中。 任何人都可以使用有效的刷新令牌在不知道你密码的情况下访问你的 HiDrive 文件系统。 因此,你应该确保其他人无法访问你的配置文件。

可以对 rclone 的配置文件进行加密。 你可以通过查看配置加密文档来了解如何保护你的配置文件。

无效的刷新令牌

此处所述,每个 refresh_token(适用于原生应用程序)的有效期为 60 天。 如果使用该令牌访问 HiDrive,其有效期将自动延长。

这意味着,如果你:

  • 60 天内未使用 HiDrive 远程存储

那么 rclone 将返回一个错误,其中包含暗示刷新令牌无效已过期的文本。

要解决这个问题,你需要再次授权 rclone 访问你的 HiDrive 账户。

使用以下命令:

rclone config reconnect remote:

这个过程与之前示例中的初始设置过程非常相似。

修改时间和哈希值

HiDrive 允许将对象的修改时间精确设置到 1 秒。

HiDrive 支持其自身的哈希类型,该类型用于在成功传输后验证文件内容的完整性。

受限文件名的字符

HiDrive 不能存储名称中包含 /(0x2F)或空字节(0x00)的文件或文件夹。 文件或文件夹的名称可以使用任何其他字符。此外,文件或文件夹不能命名为 ...

因此,如果存储或访问的文件或文件夹名称包含这些字符,rclone 将自动替换它们。

你可以在这里了解有关此文件名编码的一般工作原理。

请记住,HiDrive 仅支持长度为 255 个字符或更短的文件或文件夹名称。

传输

HiDrive 限制单个请求的文件大小最大为 2 GiB。 为了允许存储更大的文件并提高上传性能,对于大于 96 MiB 的文件,hidrive 后端将使用分块传输。 rclone 将同时上传文件的多个部分/块。 上传过程中的块会缓存在内存中,因此在资源有限的系统上,你可能需要限制这种行为。

你可以使用以下选项自定义此行为:

  • chunk_size:文件块的大小
  • upload_cutoff:大小大于或等于此值的文件将使用分块传输
  • upload_concurrency:同时上传的文件块数量

有关更多详细信息,请参阅下面关于配置选项的部分。

根文件夹

你可以为 rclone 设置根文件夹。 这是 rclone 认为是你 HiDrive 根目录的目录。

通常,你可以留空,rclone 将使用账户的根目录。

但是,你可以设置此选项以将 rclone 限制在特定的文件夹层次结构中。

这是通过将 root_prefix 选项的内容添加到 rclone 访问的任何路径前面来实现的。 例如,以下两种访问主目录的方式是等效的:

rclone lsd --hidrive-root-prefix="/users/test/" remote:path

rclone lsd remote:/users/test/path

有关更多详细信息,请参阅下面关于配置选项的部分。

目录成员数量

默认情况下,rclone 会知道目录中包含的目录成员数量。 例如,rclone lsd 命令会使用此信息。

获取此信息会导致 HiDrive API 产生额外的时间成本。 在处理大型目录结构时,尤其是在不需要此信息时,可能希望避免这种时间成本。 为此,可以使用 disable_fetching_member_count 选项。

有关更多详细信息,请参阅下面关于配置选项的部分。

标准选项

以下是特定于 hidrive(HiDrive)的标准选项。

–hidrive-client-id

OAuth 客户端 ID。

通常留空。

属性:

  • 配置项:client_id
  • 环境变量:RCLONE_HIDRIVE_CLIENT_ID
  • 类型:字符串
  • 是否必需:否

–hidrive-client-secret

OAuth 客户端密钥。

通常留空。

属性:

  • 配置项:client_secret
  • 环境变量:RCLONE_HIDRIVE_CLIENT_SECRET
  • 类型:字符串
  • 是否必需:否

–hidrive-scope-access

rclone 向 HiDrive 请求访问权限时应使用的访问权限。

属性:

  • 配置项:scope_access
  • 环境变量:RCLONE_HIDRIVE_SCOPE_ACCESS
  • 类型:字符串
  • 默认值:“rw”
  • 示例:
    • “rw”
      • 对资源具有读写访问权限。
    • “ro”
      • 对资源具有只读访问权限。

高级选项

以下是特定于 hidrive(HiDrive)的高级选项。

–hidrive-token

OAuth 访问令牌,以 JSON 格式表示。

属性:

  • 配置项:token
  • 环境变量:RCLONE_HIDRIVE_TOKEN
  • 类型:字符串
  • 是否必需:否

–hidrive-auth-url

认证服务器 URL。

留空以使用提供商的默认值。

属性:

  • 配置项:auth_url
  • 环境变量:RCLONE_HIDRIVE_AUTH_URL
  • 类型:字符串
  • 是否必需:否

–hidrive-token-url

令牌服务器 URL。

留空以使用提供商的默认值。

属性:

  • 配置项:token_url
  • 环境变量:RCLONE_HIDRIVE_TOKEN_URL
  • 类型:字符串
  • 是否必需:否

–hidrive-client-credentials

使用客户端凭证 OAuth 流程。

这将使用 RFC 6749 中描述的 OAuth2 客户端凭证流程。

属性:

  • 配置项:client_credentials
  • 环境变量:RCLONE_HIDRIVE_CLIENT_CREDENTIALS
  • 类型:布尔值
  • 默认值:false

–hidrive-scope-role

rclone 向 HiDrive 请求访问权限时应使用的用户级别。

属性:

  • 配置项:scope_role
  • 环境变量:RCLONE_HIDRIVE_SCOPE_ROLE
  • 类型:字符串
  • 默认值:“user”
  • 示例:
    • “user”
      • 用户级别的管理权限访问。
      • 在大多数情况下,这就足够了。
    • “admin”
      • 广泛的管理权限访问。
    • “owner”
      • 完全的管理权限访问。

–hidrive-root-prefix

所有路径的根/父文件夹。

填写此项以使用指定的文件夹作为提供给远程存储的所有路径的父文件夹。 这样,rclone 可以使用任何文件夹作为其起始点。

属性:

  • 配置项:root_prefix
  • 环境变量:RCLONE_HIDRIVE_ROOT_PREFIX
  • 类型:字符串
  • 默认值:"/"
  • 示例:
    • “/”
      • rclone 可访问的最顶层目录。
      • 如果 rclone 使用常规的 HiDrive 用户账户,这将等同于 “root”。
    • “root”
      • HiDrive 用户账户的最顶层目录
    • ""
      • 这表示你的路径没有根前缀。
      • 使用此选项时,你始终需要为该远程存储指定有效的父路径,例如 “remote:/path/to/dir” 或 “remote:root/path/to/dir”。

–hidrive-endpoint

服务的端点。

这是将进行 API 调用的 URL。

属性:

–hidrive-disable-fetching-member-count

除非绝对必要,否则不获取目录中的对象数量。

如果不获取子目录中的对象数量,请求可能会更快。

属性:

  • 配置项:disable_fetching_member_count
  • 环境变量:RCLONE_HIDRIVE_DISABLE_FETCHING_MEMBER_COUNT
  • 类型:布尔值
  • 默认值:false

–hidrive-chunk-size

分块上传的块大小。

任何大于配置的阈值(或大小未知的文件)的文件将以该大小的块进行上传。

此值的上限为 2147483647 字节(约 2.000 Gi)。 这是单个上传操作支持的最大字节数。 将此值设置为高于上限或负值将导致上传失败。

将此值设置得更大可能会提高上传速度,但会消耗更多内存。 可以将其设置为较小的值以节省内存。

属性:

  • 配置项:chunk_size
  • 环境变量:RCLONE_HIDRIVE_CHUNK_SIZE
  • 类型:SizeSuffix
  • 默认值:48Mi

–hidrive-upload-cutoff

分块上传的阈值。

任何大于此值的文件将以配置的块大小进行分块上传。

此值的上限为 2147483647 字节(约 2.000 Gi)。 这是单个上传操作支持的最大字节数。 将此值设置为高于上限将导致上传失败。

属性:

  • 配置项:upload_cutoff
  • 环境变量:RCLONE_HIDRIVE_UPLOAD_CUTOFF
  • 类型:SizeSuffix
  • 默认值:96Mi

–hidrive-upload-concurrency

分块上传的并发数。

这是同一文件的最大并发传输数量。 将此值设置为小于 1 将导致上传死锁。

如果你通过高速链接上传少量大文件,并且这些上传没有充分利用你的带宽,那么增加此值可能有助于加快传输速度。

属性:

  • 配置项:upload_concurrency
  • 环境变量:RCLONE_HIDRIVE_UPLOAD_CONCURRENCY
  • 类型:整数
  • 默认值:4

–hidrive-encoding

后端的编码方式。

有关更多信息,请参阅概述中的编码部分

属性:

  • 配置项:encoding
  • 环境变量:RCLONE_HIDRIVE_ENCODING
  • 类型:Encoding
  • 默认值:Slash,Dot

–hidrive-description

远程存储的描述。

属性:

  • 配置项:description
  • 环境变量:RCLONE_HIDRIVE_DESCRIPTION
  • 类型:字符串
  • 是否必需:否

限制

符号链接

从设计上来说,HiDrive 能够存储符号链接(symlinks),例如,从 ZIP 存档中解压出来的符号链接。

在远程存储中没有直接的机制来管理原生符号链接。 因此,此实现选择忽略远程存储中存在的任何原生符号链接。 rclone 将无法访问或显示存储在 hidrive 远程存储中的任何符号链接。 这意味着除非删除、复制或移动父文件夹,否则无法单独删除、复制或移动符号链接。

这不会影响 rclone 用于编码和存储符号链接的 .rclonelink 文件。

稀疏文件

可以在 HiDrive 中存储稀疏文件。

请注意,复制稀疏文件时,文件空洞将被扩展为零字节(0x00)区域,从而占用磁盘空间。 同样,下载稀疏文件时,生成的文件在文件空洞的位置将包含零字节区域。