banner
年糕

年糕日记

此站为备份站点,最新文章请访问 oior.net
telegram
email

自建私有 API 挂载OneDrive

前言#

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

创建 OneDrive API#

获取 Client ID#

image

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

image

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

image

获取 Client secret#

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

image

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

image

设置 API 权限#

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

image

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

image

获取 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 ,复制并保存好。

其它说明#

私有 API 局限性#

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

OneDrive API 限制阈值是多少?#

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

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

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

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

如何避免 OneDrive API 受限?#

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

关于 Office 365 E5 自动续订#

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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。