使用 Rclone 给 OneDrive 传输文件时可能会遇到速度非常慢、断联等一些问题,其根源是 OneDrive 使用 Rclone 自带 API 会有一些限制,毕竟是很多人都在共用一个 API 接口。使用自建的 API 连接 OneDrive 可大幅改善这些情况。此外自建的 API 不仅限于当前账号和 Rclone 使用,你也可以给其它的账号和其他应用使用。
速度测试
前者为使用 Rclone 自带 API ,后者为自建 API ,可以很明显的看出速度相差了 10 多倍。
(其他人的测试)
创建 OneDrive API
获取 Client ID
- 进入 Microsoft Azure 应用注册页面。点击新注册。
- 名称随意,账户类型选择"任何組織目錄中的帳戶 (任何 Azure AD 目錄 - 多租用戶) 和個人 Microsoft 帳戶 (例如 Skype、Xbox)",重定向URL选择WEB,填写http://localhost。
- 创建成功后你会看到應用程式 (用戶端) 識別碼,复制并保存好。
获取 Client secret
点击憑證及祕密,按照图中序号的顺序操作添加密码。(现在密钥到期最长只有24个月)
然后会看到 Client secret(客户端密码),复制并保存好。
设置 API 权限
点击API 权限,按照图示进行操作,添加Files.Read、Files.ReadWrite、Files.Read.All、Files.ReadWrite.All、offline_access、User.Read这些权限。
获取 token
在本地电脑上下载rclone。
以 Windows 为例子,解压并进入rclone.exe所在文件夹,在资源管理器地址栏输入cmd回车打开命令提示符,进入当前rclone文件夹路径,执行以下命令:
rclone authorize "onedrive"
接下来会弹出浏览器,要求你登录账号进行授权。授权完后浏览器会提示Success,命令提示符窗口会出现以下信息:
整个内容(包含{}括号)就是 token ,复制并保存好。
{"access_token":"xxxxxxxxxxxxxxxxxx","expiry":"2023-08-20T20:36:45.5230094+08:00"}