首页
/ rclone 配置 Drime 云存储后端:从令牌创建到分片上传的完整指南

rclone 配置 Drime 云存储后端:从令牌创建到分片上传的完整指南

2026-09-07 17:01:29作者:卓艾滢Kingsley

Drime(drime.cloud)是一家专注于高速、可靠文件投递的云存储与传输服务,同时提供免费与付费套餐,其上传速度和链接分享能力是其核心卖点。在 rclone 中,Drime 后端(backend 名为 drime)自 v1.73 版本引入,可让你像操作本地目录一样对 Drime 空间执行 copylsfsyncmount 等全部 rclone 操作。读完本文,你将掌握如何申请 API 令牌、通过 rclone config 完成交互式配置、理解"无修改时间/哈希"带来的同步语义,以及如何利用 root_folder_id 收窄作用范围、按需调整分片上传参数以实现大文件高速传输。

Drime 后端在 rclone 中的定位

Drime 是 rclone 众多云存储远端之一,对应源码位于 backend/drime/drime.go。与 Google Drive、Dropbox 这类完整网盘类似,Drime 也以"目录树 + 文件条目(file entry)"的方式组织数据,因此其实现大量复用了 rclone 的目录缓存(dircache)机制。

从源码可见该后端基于 HTTP REST API 构建:接口基地址为 https://app.drime.cloud/api/v1(见 drime.go 第 53-54 行),并以 Bearer 令牌方式完成鉴权。文件头部注释还透露了官方接口的限流约定——响应头 X-Ratelimit-LimitX-Ratelimit-Remaining 表明限制为每分钟 2000 次 API 请求,rclone 内置的 pacer 会负责在限流之下平稳运行。

第一步:在 Drime 控制台创建 API Access Token

任何后端配置之前,你都需要一个访问凭证。流程如下:

  1. 登录 Drime 网页控制台;
  2. 进入 Settings(设置)→ Developer(开发者) 页面;
  3. 创建一个 token 作为 API Access Key;
  4. 为它起一个易于识别的名称,例如 rclone-sync
  5. 复制生成的 token,供后续 rclone config 使用。

access_tokendrime.go 第 67-71 行 注册时被标记为 Sensitive: true,意味着 rclone 会将其作为敏感项处理(写入配置文件时以 obscured 形式存储)。

通过 rclone config 完成交互式配置

先启动配置向导:

rclone config

随后按下面的示例完成交互。这里的远端命名为 remote,你可以自由更换名称:

No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

Enter name for new remote.
name> remote

Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
XX / Drime
   \ (drime)
Storage> drime

Option access_token.
API Access token
You can get this from the web control panel.
Enter a value. Press Enter to leave empty.
access_token> YOUR_API_ACCESS_TOKEN

Edit advanced config?
y) Yes
n) No (default)
y/n> n

Configuration complete.
Options:
- type: drime
- access_token: YOUR_API_ACCESS_TOKEN
Keep this "remote" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

在"Edit advanced config?"处选择 y 还可以额外看到下文"Advanced options"中的全部进阶参数。配置完成后,rclone 会自动在配置文件中记录该远端,常用形如:

[remote]
type = drime
access_token = YOUR_API_ACCESS_TOKEN

从源码看,当 root_folder_id 留空时,rclone 在建立连接(NewFs)时会通过目录缓存自动探测正确的根目录 ID,并回填到配置文件中(见 drime.go 第 386-390 行)。

基础使用:查看与复制文件

配置完成后即可像使用其他远端一样使用它(以下命令中 remote 替换为你实际命名的远端):

列出 Drime 顶层目录与文件:

rclone lsf remote:

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

rclone copy /home/source remote:backup

rclone copyrclone syncrclone moverclone mountrclone lsf 等命令均适用于该远端。此外该后端实现了 About(配额查询)接口,可通过 rclone about remote: 查看总容量、已用与可用空间,其数据来自 GET /user/space-usage(见 drime.go 第 1432-1461 行)。

修改时间与哈希:Drime 的同步语义要点

Drime 不支持修改时间(modification time),也不支持任何哈希校验。 这一点需要重点理解,因为它直接影响 sync/copy 的增量判断行为。

源码印证如下:

由此产生两个实际影响:

  1. 默认情况下,rclone sync/copy 只能以"文件大小"作为判断文件是否需要更新的依据。只要远端文件与本地文件大小一致,rclone 就会认为它是最新的,即使内容实际已经变化。
  2. 你还可以使用 --update 标志,此时 rclone 改用"对象上传时间"(即 Drime 记录该文件被上传的时刻)参与判断。对很多操作场景而言这足以判断文件是否变动。但要注意一个陷阱:如果一个文件的本地时间戳早于其真实上传时间(例如把创建时间设在过去的旧文件同步上去),使用 --update 的同步会漏掉它。因此官方文档建议仅在能接受这一语义的前提下使用 --update

从对象实现看,rclone 会把 Drime 返回的 UpdatedAt(更新时间)作为对象时间使用(见 drime.go 第 1494-1501 行),这也解释了为何"上传时间"是唯一可靠的时间维度。

受限文件名字符与编码处理

除了 rclone overview 文档中定义的通用受限字符集 之外,Drime 后端还会额外替换以下字符:

字符 替换为
\(反斜杠) 0x5C \(全角反斜杠)

此外,文件名不能以某些字符开头或结尾,这些字符仅在处于名称的首位或末位时被替换:

字符 替换为
空格 0x20 ␠(U+2420,符号空格)

另外,无效的 UTF-8 字节也会被替换(与 overview 中的 Invalid UTF-8 处理 一致),因为它们无法出现在 JSON 字符串中。

这些规则对应后端注册的默认 encodingSlash,BackSlash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dotdrime.go 第 153-157 行)。也就是说,除了通用的斜杠、控制字符、删除符、首尾空格、非法 UTF-8、点号等规则外,Drime 后端额外启用了 BackSlash 编码——这正是上表中反斜杠被替换为全角形式的原因。编码是双向的:rclone 在列出远端条目时会把编码后的名称解码回标准形式(见 drime.go 第 559 行ToStandardName),保证你看到和操作的都是原始名称。

提示:encoding 本身也是一个可配置项(--drime-encoding),仅在确有必要时才建议改动,否则可能导致与服务器端实际名称不一致。

root_folder_id:把 rclone 限制到某个目录

root_folder_id 表示 rclone 视为"Drime 驱动器根目录"的那个目录(以它的 Folder ID 标识)。

  • 通常留空即可:rclone 会自动确定正确的根目录,并把值回填进配置文件;
  • 但如果你希望 rclone 只对某个子目录层级可见,可以手动设置,将其锁定到特定目录树。

要找到目标目录的 Folder ID,可以借助 rclone 自身。先列出顶层目录及其 ID:

$ rclone lsf -Fip --dirs-only remote:
d6341f53-ee65-4f29-9f59-d11e8070b2a0;Files/
f4f5c9b8-6ece-478b-b03e-4538edfe5a1c;Photos/
d50e356c-29ca-4b27-a3a7-494d91026e04;Videos/

其中 -Fip 的含义是让输出格式包含 ID(i)与路径(p),并以 ; 作为分隔符,因此每行中分号之前的部分就是该目录的 ID。例如要把 rclone 锁定到 Files 目录,配置:

root_folder_id = d6341f53-ee65-4f29-9f59-d11e8070b2a0

其底层机制是:目录 ID 会进入 rclone 的目录缓存(dircache),后续所有 FindLeafListMkdirPut 等操作都以该 ID 为起点解析路径(见 drime.go 第 458-504 行)。注意 root_folder_id 在源码注册时同样被标记为 Sensitive: true

配置参数全览

以下是 drime 后端的标准与进阶选项(文档说明与 drime.go 第 61-160 行 的注册定义保持一致)。命令行下每个参数均可用 --drime-xxx 形式覆盖,也可通过环境变量设置。

Standard options(标准选项)

--drime-access-token

API Access token(从网页控制台获取)。

  • Config:access_token
  • Env Var:RCLONE_DRIME_ACCESS_TOKEN
  • Type:string
  • Required:false

Advanced options(进阶选项)

--drime-root-folder-id

根文件夹的 ID。正常情况留空,由 rclone 自动填写;如需把 rclone 限制在某个目录,手动填入即可(见上文)。

  • Config:root_folder_id
  • Env Var:RCLONE_DRIME_ROOT_FOLDER_ID
  • Type:string
  • Required:false

--drime-workspace-id

Account ID。正常留空,仅在需要指定某个 Workspace 时填写。设置后,rclone 的所有列表与创建目录/上传请求都会附带 workspaceId 查询参数(见 drime.go 第 480-482 行drime.go 第 532-534 行)。

  • Config:workspace_id
  • Env Var:RCLONE_DRIME_WORKSPACE_ID
  • Type:string
  • Required:false

--drime-list-chunk

每次调用返回的条目数量。后端在列目录时以 perPage 参数携带该值,并按 page 参数分页拉取直到最后一页(见 drime.go 第 535-568 行)。

  • Config:list_chunk
  • Env Var:RCLONE_DRIME_LIST_CHUNK
  • Type:int
  • Default:1000

--drime-hard-delete

是否永久删除文件而不是放入回收站。源码中删除请求的 DeleteForever 字段直接取自该选项(drime.go 第 699-702 行),因此关闭时(默认)删除只是移入回收站、可恢复,开启后不可恢复。

  • Config:hard_delete
  • Env Var:RCLONE_DRIME_HARD_DELETE
  • Type:bool
  • Default:false

--drime-upload-cutoff

切换到分片上传的临界大小。任何大于该值的文件都会被切成 chunk_size 的分块上传。最小值 0,最大 5 GiB。默认值 5 MiB 与 Drime 官方上传指南 一致(见 drime.go 第 57 行)。

  • Config:upload_cutoff
  • Env Var:RCLONE_DRIME_UPLOAD_CUTOFF
  • Type:SizeSuffix
  • Default:5Mi

--drime-chunk-size

上传使用的分块大小。当文件大小超过 upload_cutoff、或文件大小未知(例如通过 rclone rcat 流式写入、rclone mount 写入、Google Photos / Google Docs 等场景)时,将以该值进行 multipart(分片)上传。

要点提示:

  • 内存占用:每个传输在内存中会缓冲 --drime-upload-concurrency 个该大小的分块;

  • 若在高速链路上传输大文件且内存充足,增大该值可提升传输速度

  • 上传已知大小的大文件时,rclone 会自动调大分块,以保证不突破 10,000 分块上限;

  • 未知大小的文件则始终使用你配置的 chunk_size。由于默认分块为 5 MiB、最多 10,000 个分块,默认情况下单文件流式上传的上限约为 48 GiB;若要流式上传更大的文件,需要调大 chunk_size

  • Config:chunk_size

  • Env Var:RCLONE_DRIME_CHUNK_SIZE

  • Type:SizeSuffix

  • Default:5Mi

--drime-upload-concurrency

分片上传与复制操作中,同一文件并发上传的分块数量。若你只上传少量大文件、且现有带宽未被充分利用,增大该值可能有助于提速。从源码常量看,maxUploadParts 为 10000(drime.go 第 55 行),与上述分块上限相印证。

  • Config:upload_concurrency
  • Env Var:RCLONE_DRIME_UPLOAD_CONCURRENCY
  • Type:int
  • Default:4

--drime-encoding

后端使用的编码规则,详见 overview 文档的 encoding 章节

  • Config:encoding
  • Env Var:RCLONE_DRIME_ENCODING
  • Type:Encoding
  • Default:Slash,BackSlash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot

--drime-description

对该远端的文字描述(不会影响任何传输行为,仅用于自我说明)。

  • Config:description
  • Env Var:RCLONE_DRIME_DESCRIPTION
  • Type:string
  • Required:false

源码视角:Drime 后端的实现要点

鉴权与重试策略

连接建立时(NewFs),rclone 会为每个请求设置 Authorization: Bearer <access_token>Accept: application/json 头(见 drime.go 第 381-383 行),并对 JSON 错误响应做统一解析(errorHandler,见 drime.go 第 330-349 行)。

除 rclone 通用重试规则外,该后端额外把以下状态码纳入重试列表(drime.go 第 266-278 行):

  • 429 Too Many Requests500502503504509
  • Cloudflare 相关错误码 520521522523524

结合每分钟 2000 次请求的官方限流,rclone 使用带最小间隔 10ms、最大间隔 20s 的指数退避 pacer 控制请求节奏(drime.go 第 50-52 行),保证实际请求量不会触顶。

覆盖写入的"先传后删"策略

当目标文件已存在时,Object.Update 并不是原地覆盖,而是先上传新版本,成功后删除旧对象(见 drime.go 第 1589-1607 行)。若新版本上传失败,旧文件保留不受影响;若旧对象在删除时已被其他客户端先删掉,rclone 也会安全忽略(仅记录调试日志),这种设计保证了覆盖操作尽量原子化。

小文件直传与大文件分片上传的分流

Object.Updatedrime.go 第 1609-1620 行 根据大小分流:

  • 大小未知(size < 0)或超过 upload_cutoff → 走 multipart.UploadMultipart 分片上传流程,对应 Drime API 的 /s3/multipart/* 系列接口(创建上传、批量签名分块 URL、完成上传等,参见 backend/drime/api/types.goMultiPartCreateRequestMultiPartGetURLsRequestMultiPartCompleteRequest 等结构体);
  • 否则 → 直接以 multipart 表单方式 POST /uploads 单次上传(drime.go 第 1622-1647 行)。

Drime 的 API 类型定义(backend/drime/api/types.go)还展示了其完整的数据模型:Item 同时描述文件夹与文件(以 Type == "folder" 区分),包含 file_sizecreated_atupdated_atfile_hashurl 下载地址、permissions 等元数据;Listing 则给出了分页响应结构(current_pagelast_pageper_page 等),与 list_chunk 参数一一对应。

删除与目录操作语义

  • 删除统一走 POST /file-entries/deleteDeleteForeverhard_delete 决定(默认进回收站);
  • 若 Drime 返回包含 entry ids is invalid 的 422 错误,rclone 将其归一化为"对象不存在",避免重复删除时报错(drime.go 第 708-713 行);
  • 目录支持 Rmdir(非空报错)、Purge(连内容一起删)以及 DirMove;根目录不允许 purge;
  • 文件与目录还实现了 server-side 的 MovePOST /file-entries/move)与 CopyPOST /file-entries/duplicate),这意味着在 Drime 内部的搬移与复制不会走"下载再上传",效率更高;
  • 空目录是允许的,同时后端支持读取/写入 MIME 类型(ReadMimeType / WriteMimeType,见 drime.go 第 376-380 行)。

限制与注意事项

  • 文件名长度限制为 255 字节(按 UTF-8 编码计)。注意是按"字节"而非"字符"计算,因此包含中文等多字节字符的文件名实际可容纳的字符数会更少;
  • 不支持修改时间与哈希(具体同步语义见上文专节,涉及 --update 的历史时间戳漏检风险);
  • 对 API 有每分钟约 2000 次的官方限流,海量小文件的同步场景可结合 rclone 的 --transfers--checkers 等参数适当控制并发,避免触发 429。

综上,Drime 后端在 rclone 中的定位清晰:它适合看重上传速度、以"整文件替换 + 链接分享"为工作流的使用者;在搭配 rclone sync 做增量备份时,务必先理解其"无 mtime、无哈希"的比对逻辑,必要时引入 --update 并接受其边界情况,或配合 crypt 等后端进行内容校验。

如需查阅更多命令细节,可参考后端实现 backend/drime/drime.go、API 数据类型 backend/drime/api/types.go、对应测试 backend/drime/drime_test.go,以及 rclone 全量后端选项总览 backend/drime 官方文档

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.81 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
596
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
920
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.79 K
1.02 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
519
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
390