资讯动态

rclone Linkbox 后端使用与配置指南:基于 API Token 与邮箱密码双通道的私有云盘接入

发布时间:2026/9/8 15:30:38 来源:尧图企业网站定制
rclone Linkbox 后端使用与配置指南基于 API Token 与邮箱密码双通道的私有云盘接入【免费下载链接】rclonersync for cloud storage - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files项目地址: https://gitcode.com/GitHub_Trending/rc/rcloneLinkbox 是一个主打隐私与安全托管的私有云盘服务。rclone 从 v1.65 开始原生支持将 Linkbox 作为后端backend实现对该云盘的目录列举、上传、下载、删除与同步。本文以官方文档为核心结合仓库中 backend/linkbox/linkbox.go 的源码实现系统讲解 Linkbox remote 的完整配置流程、全部参数语义、v1.74 之后的鉴权变化以及背后由「Open API Web API」双通道协作驱动的运行原理。读完本文你将能够独立完成一个 Linkbox remote 的创建、验证与日常同步操作并理解出错时的排查方向。前置准备在开始配置前你需要准备以下三样信息API Token登录 Linkbox 官方后台账户页 获取。注册邮箱你的 Linkbox 登录邮箱。账户密码与邮箱对应的登录密码。重要版本提示自rclone v1.74起Linkbox 后端在原有 API Token 基础上必须额外提供邮箱与密码当前仓库版本为 v1.76.0VERSION。两者职责分工为API Token用于文件上传与修改写入侧操作邮箱 密码登录用于目录列举与文件下载读取侧操作。如果你此前已配置过 Linkbox remote需要重新执行rclone config编辑该 remote 补上邮箱和密码否则后端在初始化时就会直接报错。交互式创建 remote在你的终端中运行rclone config随后按提示完成交互。一个完整的建站过程如下XX为菜单中 Linkbox 对应编号的占位实际以你终端显示的编号为准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 / Linkbox \ (linkbox) Storage XX Option token. Token from https://www.linkbox.to/admin/account Enter a value. token YOUR_API_TOKEN Option email. Email for login Enter a value. email youremail.com Option password. Password for login Enter a value. password YOUR_PASSWORD Configuration complete. Options: - type: linkbox - token: XXXXXXXXXXX - email: youremail.com - password: *** ENCRYPTED *** Keep this linkbox remote? y) Yes this is OK (default) e) Edit this remote d) Delete this remote y/e/d y配置完成后即可用remote:前缀访问 Linkbox 云盘例如# 列出根目录 rclone lsd remote: # 列举目录内容含文件与子目录 rclone ls remote: # 上传本地目录到云盘 rclone copy /local/path remote:backup # 挂载为本地文件系统Windows/macOS/Linux 均可 rclone mount remote: /mnt/linkbox配置参数详解下文参数与默认值均由fs.RegInfo自动生成并同步到文档真实定义源在 backend/linkbox/linkbox.go即注释中提示的「edit fs.RegInfo … and run make backenddocs」所指位置。修改代码后需运行该命令重新生成选项文档。Standard options标准选项参数配置键环境变量类型必填说明--linkbox-tokentokenRCLONE_LINKBOX_TOKENstring是来自 https://www.linkbox.to/admin/account 的 Token--linkbox-emailemailRCLONE_LINKBOX_EMAILstring是登录邮箱--linkbox-passwordpasswordRCLONE_LINKBOX_PASSWORDstring是登录密码--linkbox-tokenToken from https://www.linkbox.to/admin/accountProperties:Config: tokenEnv Var: RCLONE_LINKBOX_TOKENType: stringRequired: true在源码中该字段同时被标记为Sensitive: true写入配置文件后会按 rclone 的敏感项机制处理不会以明文形式直接展示。--linkbox-emailEmail for loginProperties:Config: emailEnv Var: RCLONE_LINKBOX_EMAILType: stringRequired: true--linkbox-passwordPassword for loginNB该输入必须先做混淆obscure处理——参见rclone obscure命令命令实现见 cmd/obscure/obscure.go。这正是交互式配置输入密码后显示*** ENCRYPTED ***的原因IsPassword: true标记会触发 obscure 存储运行时再由后端通过obscure.Reveal解密后用于登录见 backend/linkbox/linkbox.go。Properties:Config: passwordEnv Var: RCLONE_LINKBOX_PASSWORDType: stringRequired: true这三个标准选项也都可以通过对应的环境变量注入从而支持脚本化、免交互地创建 remoteexport RCLONE_LINKBOX_TOKENYOUR_API_TOKEN export RCLONE_LINKBOX_EMAILyouremail.com export RCLONE_LINKBOX_PASSWORDYOUR_OBSCURED_PASSWORD rclone lsd remote:其中RCLONE_LINKBOX_PASSWORD需要先经rclone obscure混淆后再传入否则会出现解密失败的错误。Advanced options高级选项--linkbox-descriptionDescription of the remote.Properties:Config: descriptionEnv Var: RCLONE_LINKBOX_DESCRIPTIONType: stringRequired: false该选项用于为 remote 添加一条便于识别的备注描述不参与任何鉴权或存储逻辑。除了上述文档公开项外后端在内部还维护了一个不向用户暴露的配置键web_token在 backend/linkbox/linkbox.go 中声明为Hide: fs.OptionHideBoth。它是 Web API 的登录票据由 rclone 在后台自动写入配置文件供后续调用复用你无需也无法手动配置。双通道鉴权机制与读写分工阅读NewFs的初始化流程可以发现Linkbox 后端在连接建立时会做这样几件事见 backend/linkbox/linkbox.go校验账号信息若email或password为空直接返回email and password are required - run rclone config这正是 v1.74 之后旧配置无法使用的原因读取或换取 Web Token如果配置里已有缓存好的web_token直接复用否则调用login()走一次完整登录初始化目录缓存通过dircache.DirCache从根目录rootID 0出发建立目录 ID 映射用于快速把路径解析成目录 ID。登录动作本身见 backend/linkbox/linkbox.go通过GET 请求 Web API完成https://www.linkbox.to/api/user/login_email?email...pwd...platformwebpfweblanen成功后从响应中取出data.token作为web_token并通过配置映射器回写进配置文件。此后每次列举/搜索文件都会携带该 token 调用 Web API一旦服务端返回错误后端会怀疑 token 已过期自动重新登录、刷新参数后重试一次对应shouldRetryWeb逻辑backend/linkbox/linkbox.go。而上传、建目录、删除等修改类操作则走另一条 Open API 通道携带你配置的 API Token例如folder_create、folder_del、file_del、folder_upload_file均以token参数传入。两类 API 在源码中分别对应两个常量linkboxAPIURL https://www.linkbox.to/api/open/ // Open API写操作用 API Token linkboxWebAPIURL https://www.linkbox.to/api/ // Web API读操作用 web_token这就是文档中「Token 用于上传与修改、邮箱密码用于列举与下载」这一结论在代码层面的直接映射。文件上传与下载的实现细节分页列举读取侧目录列举调用file/my_file_list/web接口单页最多取maxEntitiesPerPage 1000条backend/linkbox/linkbox.go。源码会循环翻页直到某页返回数量不足 1000才认为目录列举完毕backend/linkbox/linkbox.go并带有 10 万页的保护性上限。两段式上传写入侧文件上传走「先取签名 URL、再 PUT 文件、最后登记文件记录」的三段流程Object.Update见 backend/linkbox/linkbox.go先读取文件前 10 MiB计算 MD5连同文件总大小一起调用get_upload_url获取上传授权若返回status: 1说明需要真正上传——先对签名 URL 发一次HEAD跟随重定向再用PUT把「前 10 MiB 剩余数据」组成的完整数据流写入目标地址若返回status: 600则说明服务端已有相同数据跳过实际上传调用folder_upload_file携带前 10 MiB 的 MD5、文件大小、父目录 ID 与文件名完成文件记录的登记上传完成后会以指数退避的方式最多重试 10 次读取新文件以应对服务端最终一致性造成的短暂延迟。出于 API 能力的限制源码对两种场景直接拒绝上传空文件返回ErrorCantUploadEmptyFiles长度未知的流size 0返回明确错误——这与多数云盘要求预知文件大小的协议约束一致。下载通道的特殊处理CDN读取侧值得一提的细节是Linkbox 的 CDN 会间歇性屏蔽 Go 的 HTTP/2 指纹与非浏览器 User-Agent。为此后端在 backend/linkbox/linkbox.go 中专门创建了第二个 HTTP 客户端cdnSrv强制禁用 HTTP/2并把 User-Agent 伪装成 Chrome 浏览器字符串后再发起下载。因此下载不走带 token 的 Web API而是直接请求实体携带的 CDN URL。限速与重试所有请求都由fs.Pacer统一调度节流参数为最小间隔 200ms、最大间隔 2s、突发量 1backend/linkbox/linkbox.go。重试策略见shouldRetrybackend/linkbox/linkbox.go对 429/500/502/503/504/509 等 HTTP 状态码重试并且因为服务端在负载高峰时会以 200 状态返回 HTML 人机校验页而非 JSON源码还会把json.SyntaxError也纳入重试范畴让 pacer 退避直至风控解除。能力边界与限制综合官方文档与源码使用该后端需要注意如下边界大小写不敏感后端的Features声明了CaseInsensitive: true且源码中目录/文件查找一律使用strings.EqualFold进行不区分大小写的匹配backend/linkbox/linkbox.go。支持空目录CanHaveEmptyDirectories: true可用rclone rmdir清理空目录Rmdir在目录非空时会返回ErrorDirectoryNotEmpty。不支持哈希校验Hashes()返回hash.NoneHash()一律返回ErrUnsupported因此rclone check、--checksum等依赖哈希的功能在此后端上不可用。不支持修改时间Precision()返回ModTimeNotSupportedSetModTime直接报错对象时间戳取自服务端实体字段ctime创建时间上传后无法回写本地修改时间。文件名限制集成测试中显式声明SkipLeadingDot: true即Linkbox 不支持以点号.开头的文件名见 backend/linkbox/linkbox_test.go。同名文件整体覆盖Update会先删除旧文件再上传新文件。非法 UTF-8 字节会像 rclone 其他后端一样被替换处理因为此类字节无法放入 JSON 字符串中。验证配置创建完成后可用一组命令快速验证读写链路是否完整可用# 只读验证列根目录走 Web API web_token rclone lsd remote: # 写入验证向云盘拷贝测试文件走 Open API API Token rclone copyto /etc/hostname remote:rclone-test.txt # 回读验证确认写入后可下载并校验 rclone cat remote:rclone-test.txt # 清理验证 rclone delete remote:rclone-test.txt若以上任一步骤失败按错误出现的位置即可判断问题通道列举/下载报错 → 检查邮箱密码是否正确、web_token是否失效后端会自动重登可打开 debug 日志-vv观察重登过程上传/删除报错 → 检查 API Token 是否有效且具备写入权限初始化即报email and password are required→ remote 是在 v1.74 之前创建的请用rclone config编辑补全账号信息。如需在非交互场景下使用、获得完整能力描述或了解与bisync等功能的配合细节可继续查阅同目录下的相关文档与 backend/linkbox/linkbox_test.go其通过fstests.Run挂接标准后端集成测试套件是覆盖该后端行为契约的最佳示例。【免费下载链接】rclonersync for cloud storage - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files项目地址: https://gitcode.com/GitHub_Trending/rc/rclone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价