Rclone 进阶使用教程 - 自建私有 API 挂载 OneDrive

AZURE.png

前言

使用 Rclone 给 OneDrive 传输文件时可能会遇到速度非常慢、断联等一些问题,其根源是触发了 OneDrive API 的限制,而默认的 Rclone 内置 API 由于非常多人在同时在使用所以这些问题也就愈发明显。使用自建的私有 API 连接 OneDrive 可大幅改善这些情况,而且对于三个月的 Of­fice 365 E5 开发者试用版,平时偶尔用用 Rclone 还会有自动续订的可能性,比起刻意刷 API 的方式更为安全和稳定。此外自建的 API 还可以给其它的账号和其它应用使用。

TIPS: Google Drive 自建 API 参见 GoIndex 教程

速度测试

前者为使用 Rclone 自带 API ,后者为自建 API ,可以很明显的看出速度相差了 10 多倍。

创建 OneDrive API

获取 Client ID

  • 名称随意,账户类型选择最后一个,重定向 URL 填写http://localhost

  • 创建成功后你会看到 Client ID(客户端 ID),复制并保存好。

获取 Client secret

  • 点击证书和密码,按照图中序号的顺序操作添加密码。

  • 然后你会看到 Client secret(客户端密码),复制并保存好。

设置 API 权限

  • 点击API 权限,按照图示进行操作,添加Files.ReadFiles.ReadWriteFiles.Read.AllFiles.ReadWrite.Alloffline_accessUser.Read这些权限。

  • 最后确认下权限是否添加完整。

获取 token

  • 在本地电脑上下载 rclone
  • 以 Windows 为例子,解压并进入rclone.exe所在文件夹,在资源管理器地址栏输入cmd,回车就会在当前路径打开命令提示符。
  • 替换以下命令中的Client_IDClient_secret并执行。
rclone authorize "onedrive" "Client_ID" "Client_secret"

接下来会弹出浏览器,要求你登录账号进行授权。授权完后命令提示符窗口会出现以下信息:

If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Paste the following into your remote machine --->
{"access_token":"xxxxxxxxxxxxxxxxxx","expiry":"2020-02-22T21:18:39.5036298+08:00"}
<---End paste

{"access_token":"xxxxxxxxxxxxxxxxxx","expiry":"2020-02-22T21:18:39.5036298+08:00"} 整个内容(包含括号)就是 to­ken ,复制并保存好。

Rclone 连接 OneDrive

输入 rclone config 命令,会出现以下信息,参照下面的注释进行操作。

点击查看

挂载 OneDrive

如果你需要挂载到本地目录,可以参考博主之前写的挂载教程,这里就不再赘述了。

其它说明

私有 API 局限性

自建私有 API 虽然能改善上传体验,但如果使用过于频繁还是会上传受限。

OneDrive API 限制阈值是多少?

微软没有明确说明 OneDrive API 的限制,以下为官方文档原文:

根据使用情况,我们会对阈值进行微调,以便用户可以使用最大数量的资源,而不会降低可靠性和性能。

通过查看其它类型的 API 限制说明可以猜测到的是有总次数和频率这个两种限制。总次数是指一天内所能调用的次数,而频率为每分钟所能调用的次数。而一旦达到限制阈值,那么就会限制文件的上传。

既然无法从官方文档中获得准确数值,那么是否能通过实际测试来获得这个准确数值呢?答案是否定的。在实际测试中并没有发现任何规律,所以说是这个限制是动态调节的,也符合官方文档的说明。

如何避免 OneDrive API 受限?

不要在短时间内上传过多的文件,文件大小无所谓,关键在于文件数量。

关于 Office 365 E5 自动续订

根据博主几年的开发者试用版使用经验来看,只要你使用自建的私有 API 就可能续订,至于频率并没有一个标准,也并不是越多越好。刻意刷 API 可能得不偿失,尤其是使用 GitHub Ac­tions ,因为服务器是微软 Azure 的,那么多人以相似的方式无意义的刷 API 想要识别是非常容易的。

参考资料

Rclone Documentation - Microsoft OneDrive

Microsoft Graph 限制指南

本文转载自作者:P3TERX

链接:https://p3terx.com/archives/rclone-connect-onedrive-with-selfbuilt-api.html

# Rclone 

本文由:星际难民
实践,测试,整理发布.如需转载请注明地址 本文标题:Rclone 进阶使用教程 - 自建私有 API 挂载 OneDrive
地址:https://530503.xyz/articles/2020/12/02/1606891677605.html

评论

取消