笨猫博客

  • 🍟首页
  • 🍘目录
    • 🥝VPS教程
    • 🍾猫玩技术
    • 🍹干货分享
    • 🍏软件分享
    • 🍩一只猫
  • 🍋工具
    • 🌽IP路由追踪
    • 🍐域名Whois查询
    • 🥘域名被墙查询
    • 🍧IP正常检测
    • 🔥IP端口检测
    • 🍆短网址
    • 🐟VIP音乐播放
    • 🍯KMS激活
  • 🍓链接
  • 🍪联系
  • 🍱登录
    • 🥦登录
    • 🍒注册
关注互联网,生活,音乐,乐此不疲的一只笨猫
  1. 首页
  2. 猫玩技术
  3. 正文

使用自建 API 连接 OneDrive

2020-04-14 9420点热度 3人点赞 1条评论

前言

使用 Rclone 给 OneDrive 传输文件时可能会遇到速度非常慢、断联等一些问题,其根源是 OneDrive 使用 Rclone 自带 API 会有一些限制,毕竟是很多人都在共用一个 API 接口。使用自建的 API 连接 OneDrive 可大幅改善这些情况。此外自建的 API 不仅限于当前账号和 Rclone 使用,你也可以给其它的账号和其他应用使用。

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

速度测试

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

创建 OneDrive API

获取 Client ID

  • 进入 Microsoft Azure 应用注册页面。点击新注册。
  • 名称随意,账户类型选择最后一个,重定向 URL 填写http://localhost。
  • 创建成功后你会看到 Client ID(客户端 ID),复制并保存好。

获取 Client secret

  • 点击证书和密码,按照图中序号的顺序操作添加密码。
  • 然后你会看到 Client secret(客户端密码),复制并保存好。

设置 API 权限

  • 点击API 权限,按照图示进行操作,添加Files.Read、Files.ReadWrite、Files.Read.All、Files.ReadWrite.All、offline_access、User.Read这些权限。
  • 最后确认下权限是否添加完整。

获取 token

  • 在本地电脑上下载 rclone。
  • 以 Windows 为例子,解压并进入rclone.exe所在文件夹,在资源管理器地址栏输入cmd,回车就会在当前路径打开命令提示符。
  • 替换以下命令中的Client_ID、Client_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 命令,会出现以下信息,参照下面的注释进行操作。

[collapse title="点击查看"]
TIPS: 因为 RCLONE 会时不时进行更新,当你看到这篇教程时菜单选项可能已经发生了略微的改动,但大致思路不会变,不要无脑照搬操作。

$ rclone config

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n # 输入 n,新建
name> od-e5-api # 输入网盘名称,类似于标签,用于区分不同的网盘。
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
 1 / 1Fichier
   \ "fichier"
 2 / Alias for an existing remote
   \ "alias"
 3 / Amazon Drive
   \ "amazon cloud drive"
 4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
   \ "s3"
 5 / Backblaze B2
   \ "b2"
 6 / Box
   \ "box"
 7 / Cache a remote
   \ "cache"
 8 / Citrix Sharefile
   \ "sharefile"
 9 / Dropbox
   \ "dropbox"
10 / Encrypt/Decrypt a remote
   \ "crypt"
11 / FTP Connection
   \ "ftp"
12 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
13 / Google Drive
   \ "drive"
14 / Google Photos
   \ "google photos"
15 / Hubic
   \ "hubic"
16 / JottaCloud
   \ "jottacloud"
17 / Koofr
   \ "koofr"
18 / Local Disk
   \ "local"
19 / Mail.ru Cloud
   \ "mailru"
20 / Mega
   \ "mega"
21 / Microsoft Azure Blob Storage
   \ "azureblob"
22 / Microsoft OneDrive
   \ "onedrive"
23 / OpenDrive
   \ "opendrive"
24 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
25 / Pcloud
   \ "pcloud"
26 / Put.io
   \ "putio"
27 / QingCloud Object Storage
   \ "qingstor"
28 / SSH/SFTP Connection
   \ "sftp"
29 / Transparently chunk/split large files
   \ "chunker"
30 / Union merges the contents of several remotes
   \ "union"
31 / Webdav
   \ "webdav"
32 / Yandex Disk
   \ "yandex"
33 / http Connection
   \ "http"
34 / premiumize.me
   \ "premiumizeme"
Storage> 22 # 选择 Microsoft OneDrive ,截止2020年2月23日序号为 22
** See help for onedrive backend at: https://rclone.org/onedrive/ **

Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> # 输入 Client Id (客户端 ID)
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> # 输入 Client Secret (客户端密码)
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n # 输入 n
Remote config
Make sure your Redirect URL is set to "http://localhost:53682/" in your custom config.
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n # 输入 n
For this to work, you will need rclone available on a machine that has a web browser available.
Execute the following on your machine (same rclone version recommended) :
    rclone authorize "onedrive" "client_id" "client_secret"
Then paste the result below:
result> {"access_token":"XXXXXXXXX","expiry":"2020-02-22T21:18:39.5036298+08:00"}   # 输入 token
Choose a number from below, or type in an existing value
 1 / OneDrive Personal or Business
   \ "onedrive"
 2 / Root Sharepoint site
   \ "sharepoint"
 3 / Type in driveID
   \ "driveid"
 4 / Type in SiteID
   \ "siteid"
 5 / Search a Sharepoint site
   \ "search"
Your choice> 1 # # 这里问你要选择的类型,因为是使用 OneDrive ,所以输入 1
Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=xxxxxxxxxxxxxx
Chose drive to use:> 0 # 检测到了网盘,这里编号是 0 ,所以输入 0
Found drive 'root' of type 'business', URL: https://p3terx-my.sharepoint.com/personal/xxxxxx/Documents
Is that okay?
y) Yes
n) No
y/n> y # 问你是否确认,如果没问题则输入 y

--------------------
[od-e5-api]
type = onedrive
client_id = xxxxxxxxxx
client_secret = xxxxxxxxxxxxxxxx
token = {"access_token":"xxxxxxxxxxxxxxxxxx","expiry":"2020-02-22T21:18:39.5036298+08:00"}
drive_id = xxxxxxxxxxxxxxxxxxxxxxxxx
drive_type = business
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y # 最后会显示网盘的配置信息并询问你是否正确,如果没问题则输入 y
Current remotes:

Name                 Type
====                 ====
od-e5-api            onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q # 输入 q 退出

[/collapse]
最后验证一下是否能正常使用,替换以下命令中的 od-e5-api 并执行,注意最后有:(冒号)。网盘中出现 test 文件即表示成功。

touch test && rclone move test od-e5-api:
至此,Rclone 已成功使用自建 API 连接到了 OneDrive 网盘。

标签: OneDrive 自建 API
最后更新:2020-04-14

笨猫

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复

最新 热点 随机
最新 热点 随机
ssh无需密码登陆(使用密钥对) 利用rsync进行远程同步实现异地备份 中国科幻巨制《流浪地球2》 Chrome修复被2345劫持篡改的主页 GTA6预告片内容泄露:女主在监狱里锻炼身体 《星期三》第二季将有更多亚当斯一家的内容
ssh无需密码登陆(使用密钥对)利用rsync进行远程同步实现异地备份中国科幻巨制《流浪地球2》SuperForum:轻量的论坛程序《星期三》第二季将有更多亚当斯一家的内容GTA6预告片内容泄露:女主在监狱里锻炼身体
Sina App Engine Alpha版上线啦 30张桌面墙纸(打包下载)-漂亮 哪吒面板修改LOGO,背景及各种问题 又一款服务器网站状态监控页 雅蛙(Yaawa)——国内新发布的个性化主页 INFO-SPIDER:一个神奇的工具箱,拿回你的个人信息
标签聚合
VPS 日记 音乐 有趣 域名 OneDrive wordpress google
最近评论
人格 发布于 2 天前(02月06日) 怎么删除不要的订阅号和节点
人格 发布于 2 天前(02月06日) 怎么删除不要的订阅号和节点
神秘的星空smf 发布于 2 天前(02月05日) 文章很好!赞!
笨猫 发布于 1 周前(01月28日) q:94-0360231
T 发布于 2 周前(01月24日) 应该是直接从原服务器下载的,这只是个接口
好友
  • glzjin's blog glzjin's blog
  • ZAERA博客
  • 冰沫记
  • 博客导航
  • 奇它博客
  • 彩虹Smiling的Blog
  • 热闹网
  • 猫腻‘s Blog
  • 猫饭
  • 肥宅之家
  • 萌博
  • 野路子程序员

COPYRIGHT © 2022 笨猫博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang