使用 rclone 对接 Mail.ru Cloud:账号配置、哈希秒传优化与运维完整指南 使用 rclone 对接 Mail.ru Cloud账号配置、哈希秒传优化与运维完整指南【免费下载链接】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/rcloneMail.ru Cloud 是俄罗斯互联网公司 Mail.Ru Group 推出的云存储服务rclone 自 v1.50 起通过mailru后端对其提供完整支持。本文以 docs/content/mailru.md 官方文档为主体结合 backend/mailru/ 目录下的实际源码为你完整讲解「应用专用密码」的正确获取方式、交互式配置流程、MailruHash 哈希算法与「按哈希秒传」speedup优化原理、回收站清理、配额查询及全部可调参数读完即可把 Mail.ru Cloud 作为rsync for cloud storage的一员无缝接入自己的同步体系。Mail.ru Cloud 后端能力一览根据文档描述rclone 的mailru后端具备如下特性路径深度无限制例如remote:directory/subdirectory这样的多层路径可正常使用文件带修改时间、目录不带文件的last modified time属性精度可达 1 秒目录没有该属性因此会显示为 Jan 1 1970删除即进回收站删除的文件默认被移动到云端回收站而非直接物理删除支持公开链接分享文件与目录可通过公网链接共享上传前必须知晓文件大小不支持部分上传partial uploads或流式上传因此诸如流媒体直传等场景无法使用免费账号单文件上限 2G付费账号不限存储端对全部文件维护哈希并做透明去重哈希算法是经过改良的 SHA1下文 MailruHash 一节详述支持“按哈希秒传”若某个文件已存在于 Mail.ru 云端含所有用户账户本地只需提交文件哈希即可完成“上传”无需真实传输数据——这一优化在 rclone 中被原生支持即下文介绍的 speedup 特性。从源码看该后端的注册入口位于 backend/mailru/mailru.go#L80-L82其中通过fs.Register注册了名为mailru描述为 Mail.ru Cloud的后端同时用hash.RegisterHash(mailru, MailruHash, 40, mrhash.New)注册了专属哈希类型MailruHash40 位十六进制字符对应 20 字节 SHA1 摘要。前置准备注册账号并生成「应用专用密码」官方文档特别强调了一个最容易踩坑的点rclone 无法使用你的普通登录密码否则会报类似oauth2: server response missing access_token的错误。原因是该后端走 OAuth2 流程见 backend/mailru/api/m1.go#L13-L14 中定义的OAuthURL https://o2.mail.ru/token与OAuthClientID cloud-win而应用专用密码是客户端换取令牌的凭证。按文档指引你需要先在 cloud.mail.ru 注册账号并选择套餐tariff然后为 rclone 单独创建一个应用专用密码点击页面右上角的用户图标进入「安全 / Пароль и безопасность」找到「外部应用密码 / Пароли для внешних приложений」并点击创建为密码命名例如rclone选择权限级别关键文档明确说明仅勾选 Full access to CloudWebDav目前无法让 rclone 正常工作必须选择Full access to Mail, Cloud and Calendar即全部协议 all protocols这一档权限复制生成的密码——在 rclone 中填入该密码普通登录密码一律无效。该后端配置过程不需要本地浏览器参与授权属于纯用户名/密码式 OAuth 换取流程。从 backend/mailru/mailru.go#L71-L77 可以看到其 OAuth 配置ClientID固定为cloud-win认证与令牌端点均指向https://o2.mail.ru/token且采用oauth2.AuthStyleInParams参数内传凭据。交互式创建 remoterclone config 全流程运行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. Enter a string value. Press Enter for the default (). Choose a number from below, or type in your own value [snip] XX / Mail.ru Cloud \ mailru [snip] Storage mailru User name (usually email) Enter a string value. Press Enter for the default (). user usernamemail.ru Password This must be an app password - rclone will not work with your normal password. See the Configuration section in the docs for how to make an app password. y) Yes type in my own password g) Generate random password y/g y Enter the password: password: Confirm the password: password: Skip full upload if there is another file with same data hash. This feature is called speedup or put by hash. It is especially efficient in case of generally available files like popular books, video or audio clips [snip] Enter a boolean value (true or false). Press Enter for the default (true). 1 / Enable \ true 2 / Disable \ false speedup_enable 1 Edit advanced config? (y/n) y) Yes n) No y/n n Remote config Configuration complete. Options: - type: mailru - user: usernamemail.ru - pass: *** ENCRYPTED *** - speedup_enable: true Keep this remote remote? y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d y需要说明的配置细节user字段通常是完整邮箱地址如usernamemail.rupass字段必须填写上一步生成的应用专用密码。若打算用非交互方式脚本化配置可先用rclone obscure对密码进行混淆后再写入配置文件因为文档注明该字段输入必须经过 obscure 处理speedup_enable秒传开关默认即为true建议保持开启除非你的源文件多为独有或已加密内容。创建完成后即可像使用其他云端一样使用该 remote例如# 查看顶层目录 rclone lsd remote: # 新建目录 rclone mkdir remote:directory # 列出目录内容 rclone ls remote:directory # 将本地目录同步到远端删除目标端多余文件--interactive 会在删除前征询确认 rclone sync --interactive /home/local/directory remote:directoryMailruHash改良版 SHA1 哈希算法Mail.ru Cloud 为所有文件维护哈希并用于存储端透明去重。这个哈希算法在 backend/mailru/mrhash/mrhash.go 中有完整实现其规则由包注释与代码共同给出小文件≤ 20 字节哈希即文件数据本身右补零zero-padded至 20 字节。代码见 backend/mailru/mrhash/mrhash.go#L65-L71当累计写入字节数total Size即 20时直接拷贝原始内容到 20 字节数组并补零输出大文件哈希值为「文件数据」加上「文件长度的十进制字符串表示」拼接后整体做 SHA1 的摘要见 backend/mailru/mrhash/mrhash.go#L72-L80endString : strconv.Itoa(d.total)后再写入 SHA1初始化种子Reset()会先向 SHA1 内部写入字符串mrCloud作为起始种子见 backend/mailru/mrhash/mrhash.go#L94-L99这是它与标准 SHA1 不同即“改良”的关键所在输出长度最终输出 20 字节摘要经十六进制编码后为 40 个字符这也对应 backend/mailru/mailru.go#L81 中注册哈希时的长度参数40。后端在比较或校验文件时会使用MailruHash这个哈希类型对应测试可参考 backend/mailru/mrhash/mrhash_test.go。在文档的 “Modification times and hashes” 一节中说明的是同一逻辑但刻意省略了mrCloud种子这一实现细节这里通过源码将其补全。speedup按哈希秒传的实现与参数调优Mail.ru 云端对已存在的文件支持「按哈希登记即上传完成」——服务端会在所有 Mail.ru 用户的全部账户中按哈希检索文件。因此对于热门的书籍、视频、音频等普遍存在的内容rclone 只需提前算出源文件哈希并提交即可跳过数据本体传输。触发条件eligibleForSpeedup从 backend/mailru/mailru.go#L1743-L1768 的实现看一个文件要进入秒传流程必须同时满足全局开关SpeedupEnable为真文件大小处于合理区间必须大于20 字节等于哈希块大小大于等于speedupMinSize 512字节小于平均网络包大小的数据秒传不划算见 backend/mailru/mailru.go#L57并且小于SpeedupMaxDisk阈值文件名匹配speedupGlobs由SpeedupPatterns解析而来若为*则全部尝试见 backend/mailru/mailru.go#L1771-L1790rclone 能预先得知文件大小——流式或部分上传场景因无法预知大小会直接跳过该优化。三级哈希计算路径rclone 会依据文件大小选择不同的提前哈希策略见 backend/mailru/mailru.go#L1629-L1691小文件直接在内存中计算哈希受speedup_max_memory约束更大的文件先以本地文件为源直接计算更大的文件会把数据先写入**临时磁盘缓冲spool**再计算避免耗尽内存任一环节秒传失败都会自动回退为普通完整上传trySpeedup false。相关参数速查参数flag类型默认值作用--mailru-speedup-enablebooltrue全局开关是否尝试按哈希秒传--mailru-speedup-file-patternsstring*.mkv,*.avi,*.mp4,*.mp3,*.zip,*.gz,*.rar,*.pdf参与秒传的文件名通配模式逗号分隔、不区分大小写支持*与?。置空完全禁用设*全部尝试也可只保留音视频或归档/PDF 子集--mailru-speedup-max-diskSizeSuffix3Gi超过该大小的文件不再尝试秒传提前哈希会消耗本地磁盘/内存。设0完全禁用秒传设1G表示大于 1GB 直接普通上传--mailru-speedup-max-memorySizeSuffix32Mi大于该值的文件将始终在磁盘上做哈希用于限制哈希阶段占用的 RAM。设0则哈希一律走临时磁盘设256M表示最多可让哈希占用 256MB 内存这些参数的配置定义位于 backend/mailru/mailru.go#L102-L173与文档中 “Advanced options” 一节完全一致。值得一提的是当源文件为独有内容或加密内容时秒传必然不命中等于白耗一次哈希计算此时可考虑直接关闭以省去本地哈希开销。清空回收站释放被占用的配额Mail.ru Cloud 中删除文件/目录实际上只是移入回收站——回收站对 rclone 不可见在网页端才看得到且其中的文件仍然占用账户总配额。文档给出的清理方式是rclone cleanup remote:该命令不接受任何路径参数会一次性永久删除该账号回收站内的全部文件。其底层实现可参见 backend/mailru/mailru.go#L1512-L1549它携带access_token与账号邮箱信息向/api/m1/trashbin/empty发起 POST 请求并依据响应状态码200视为成功返回结果。配额查看rclone about用rclone about remote:即可查看当前账号的空间配额与已用量。实现上对应 backend/mailru/mailru.go#L1552-L1581该命令请求/api/m1/user并从响应的Body.Cloud.Space.BytesTotal与BytesUsed字段分别解析出总量与已用量——与 Mail.ru 网页端「云空间」数值一致。标准与高级参数全表mailru后端除前面介绍的速度相关参数外还包含下列可配置项全部注册逻辑见 backend/mailru/mailru.go#L86-L216标准选项参数配置键 / 环境变量必填说明--mailru-client-idclient_id/RCLONE_MAILRU_CLIENT_ID否OAuth Client Id通常留空即可后端内置默认cloud-win--mailru-client-secretclient_secret/RCLONE_MAILRU_CLIENT_SECRET否OAuth Client Secret通常留空--mailru-useruser/RCLONE_MAILRU_USER是用户名通常为邮箱--mailru-passpass/RCLONE_MAILRU_PASS是应用专用密码必须使用rclone obscure处理后再写入普通密码无效--mailru-speedup-enablespeedup_enable/RCLONE_MAILRU_SPEEDUP_ENABLE否是否启用按哈希秒传默认true高级选项参数配置键 / 环境变量默认值说明--mailru-tokentoken/RCLONE_MAILRU_TOKEN-OAuth Access Token 的 JSON blob正常由流程自动生成--mailru-auth-urlauth_url/RCLONE_MAILRU_AUTH_URL-认证服务器地址留空使用提供商默认值--mailru-token-urltoken_url/RCLONE_MAILRU_TOKEN_URL-令牌服务器地址留空使用提供商默认值--mailru-client-credentialsclient_credentials/RCLONE_MAILRU_CLIENT_CREDENTIALSfalse是否使用 RFC 6749 定义的 OAuth2 Client Credentials 流程并非所有后端都支持--mailru-speedup-file-patternsspeedup_file_patterns见上文参与秒传的文件名模式--mailru-speedup-max-diskspeedup_max_disk3Gi秒传的最大文件尺寸门槛--mailru-speedup-max-memoryspeedup_max_memory32Mi内存哈希的尺寸上限--mailru-check-hashcheck_hash/RCLONE_MAILRU_CHECK_HASHtrue复制时发现校验和不匹配或无效时true报错失败false忽略并继续--mailru-encodingencoding/RCLONE_MAILRU_ENCODING见下文件名编码策略--mailru-descriptiondescription/RCLONE_MAILRU_DESCRIPTION-remote 的描述信息受限字符与 encoding除 overview 中描述的默认受限字符集外Mail.ru 后端还会替换以下字符替换为对应的全角字符字符值替换为0x22*0x2A:0x3A0x3C0x3E?0x3F\0x5C\|0x7C同时非法 UTF-8 字节也会被替换——因为它们无法存在于 JSON 字符串中。以上限制在源码中的落点即--mailru-encoding的默认值Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Del,Ctl,InvalidUtf8,Dot对应 backend/mailru/mailru.go#L207-L215 中的encoder.Display | EncodeWin | EncodeBackSlash | EncodeInvalidUtf8组合。已知限制单文件大小上限取决于账号免费账号单文件最大 2GB付费套餐不限账户的总上传量上限请以 Mail.ru 官网公布为准大小写不敏感Mail.ru Cloud 不区分文件名大小写因此同一目录下不能同时存在Hello.doc与hello.doc否则会冲突。如果你希望进一步从代码层验证上述行为可重点翻阅 backend/mailru/mailru.go后端注册、选项定义、Put/秒传与 CleanUp/About 实现、backend/mailru/mrhash/mrhash.go哈希算法与对应的测试文件 backend/mailru/mailru_test.go。【免费下载链接】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),仅供参考

相关新闻

最新新闻

CodeGraph 装完即战力:一条命令建好本地代码知识图谱,AI Agent 五分钟接入全链路

CodeGraph 装完即战力:一条命令建好本地代码知识图谱,AI Agent 五分钟接入全链路

CodeGraph 装完即战力:一条命令建好本地代码知识图谱,AI Agent 五分钟接入全链路 【免费下载链接】codegraph Pre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, C…

2026/9/8 18:55:35
大模型算法工程师实战指南:从原理到微调部署全流程解析

大模型算法工程师实战指南:从原理到微调部署全流程解析

1. 先说清楚:这门特训到底在练什么 市面上教你"入门AI"的课程多如牛毛,但真正能让你完成身份转换、从普通开发者/算法工程师转型为大语言模型算法工程师的体系化训练,其实少得可怜。这个特训的定位非常清晰:它不是给你念…

2026/9/8 18:55:35
电销外包录音质检收费标准与合规选型指南

电销外包录音质检收费标准与合规选型指南

数据来源与采信声明数据截止日期:本文数据截止日期为2026年9月。利益冲突声明:本文由第三方自媒体评测团队撰写,团队成员具备3年以上企业服务行业研究经验。本团队声明未接受优先呼、沃丰科技、智齿科技、容联云任何品牌方的付费委托或赞助&a…

2026/9/8 18:55:35
Cesium中基于turf.js的等值线图生成与渲染实践

Cesium中基于turf.js的等值线图生成与渲染实践

简介:基于Cesium与krigingjs实现等值线图的可运行示例,面向GIS开发、前端可视化及地理数据分析人员,帮助解决在三维地球场景中展示等值区域与热力分布的需求。资源将普通克里格插值算法封装为kriging.js,并附上test.js测试脚本&am…

2026/9/8 18:55:35
从外部 OData 到 SAP Gateway,SEGW 重定义服务的集成链路全解析

从外部 OData 到 SAP Gateway,SEGW 重定义服务的集成链路全解析

很多 SAP Gateway 项目真正麻烦的地方,并不是我们自己从零编写一个 OData 服务,而是企业里已经存在一套外部 OData API,SAP 系统还需要把它纳入自己的 Gateway 服务体系。 外面的系统已经能提供 $metadata,也已经有 Entity、EntitySet、Association 以及各种数据访问能力。…

2026/9/8 18:55:35
AI数据采集实战:质量与分布决定模型上限,避开数据陷阱

AI数据采集实战:质量与分布决定模型上限,避开数据陷阱

做模型做到后面,你会发现一个扎心的现实:最值钱的东西不是模型结构,不是调参技巧,而是数据。前阵子我帮朋友复盘一个视觉检测项目。团队花了三个月从各种渠道攒了60万张图片,存储用好几个TB,训练一轮要跑好…

2026/9/8 18:50:35