原文链接:https://www.chenweiliang.com/cwl-27906.html
文章目录
在使用 Rclone 传输文件到 OneDrive 时,可能会遇到速度很慢、断线等问题……
为何Rclone连接Onedrive速度慢?
根本原因是触发了OneDrive API的限制,而默认的Rclone内置API被多人同时使用,所以这些问题也越来越明显……
使用自建私有API连接OneDrive可以大大改善这些情况,而且对于三个月的Office 365 E5开发者试用版,偶尔使用Rclone会有自动续费的可能,而不是刻意刷API,更加安全和稳定。
此外,自建API也可以被其他账户和其他应用程序使用。
如果是Google Drive自建API,请参考这篇教程 ▼
Rclone连接Onedrive速度测试
前者是网友测试使用Rclone默认的API 连接Onedrive的速度▼
后者是网友测试使用自己申请的微软API 连接Onedrive的速度▼
- 可以清楚的看到,速度相差10倍以上。
如何创建微软 Onedrive 网盘API?
微软Azure管理中心获取Client ID和Client secret的方法,请点击下方链接查看如何创建微软 Onedrive 网盘API ▼
Rclone获取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":"2024-05-15T21:18:39.5036298+08:00"
<---End paste
"access_token":"xxxxxxxxxxxxxxxxxx","expiry":"2024-05-15T21:18:39.5036298+08:00"
这段全部内容(包括括号)是token,复制并保存。
Rclone 连接 OneDrive
SSH输入以下命令 ▼
rclone config
会出现如下信息,请参考以下说明进行操作 ▼
- 注意事项:因为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> onedrive # 输入网盘名称,类似标签,这是用来区别不同的网盘。
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 / Akamai NetStorage
\ (netstorage)
3 / Alias for an existing remote
\ (alias)
4 / Amazon Drive
\ (amazon cloud drive)
5 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Lyve Cloud, Minio, RackCorp, SeaweedFS, and Tencent COS
\ (s3)
6 / Backblaze B2
\ (b2)
7 / Better checksums for other remotes
\ (hasher)
8 / Box
\ (box)
9 / Cache a remote
\ (cache)
10 / Citrix Sharefile
\ (sharefile)
11 / Compress a remote
\ (compress)
12 / Dropbox
\ (dropbox)
13 / Encrypt/Decrypt a remote
\ (crypt)
14 / Enterprise File Fabric
\ (filefabric)
15 / FTP Connection
\ (ftp)
16 / Google Cloud Storage (this is not Google Drive)
\ (google cloud storage)
17 / Google Drive
\ (drive)
18 / Google Photos
\ (google photos)
19 / Hadoop distributed file system
\ (hdfs)
20 / Hubic
\ (hubic)
21 / In memory object storage system.
\ (memory)
22 / Jottacloud
\ (jottacloud)
23 / Koofr, Digi Storage and other Koofr-compatible storage providers
\ (koofr)
24 / Local Disk
\ (local)
25 / Mail.ru Cloud
\ (mailru)
26 / Mega
\ (mega)
27 / Microsoft Azure Blob Storage
\ (azureblob)
28 / Microsoft OneDrive
\ (onedrive)
29 / OpenDrive
\ (opendrive)
30 / OpenStack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ (swift)
31 / Pcloud
\ (pcloud)
32 / Put.io
\ (putio)
33 / QingCloud Object Storage
\ (qingstor)
34 / SSH/SFTP Connection
\ (sftp)
35 / Sia Decentralized Cloud
\ (sia)
36 / Storj Decentralized Cloud Storage
\ (storj)
37 / Sugarsync
\ (sugarsync)
38 / Transparently chunk/split large files
\ (chunker)
39 / Union merges the contents of several upstream fs
\ (union)
40 / Uptobox
\ (uptobox)
41 / Webdav
\ (webdav)
42 / Yandex Disk
\ (yandex)
43 / Zoho
\ (zoho)
44 / http Connection
\ (http)
45 / premiumize.me
\ (premiumizeme)
46 / seafile
\ (seafile)
Storage> 28 # 输入28表示选择Microsoft OneDrive
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
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":"2024-05-15T21: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:// xxx.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":"2024-05-15T21: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
==== ====
onedrive 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 退出
- 至此,Rclone已经使用自建API成功连接到OneDrive网盘。
配置完成后,你可以使用如下rclone
命令查看:
列出 onedrive 顶层的目录 ▼
rclone lsd onedrive:
列出 onedrive 中的所有文件 ▼
rclone ls onedrive:
将本地目录复制到名称为backup
的 onedrive 目录 ▼
rclone copy /home/source onedrive:backup
更多Rclone命令使用教程,请参考下方的Rclone命令大全 ▼
如何挂载OneDrive?
如果需要挂载到本地目录,可以参考我们之前的Rclone挂载教程 ▼
OneDrive 私有API的限制
虽然自建私有API可以提升上传体验,但是如果使用太频繁,上传可能会受到限制。
微软 OneDrive API 最大限制阈值是多少?
微软没有明确说明 OneDrive API 的最大限制阀值是多少,以下是原文档:
根据使用情况,我们会对阈值进行微调,以便用户可以使用最大数量的资源,而不会降低可靠性和性能。
- 通过查看其他类型 API 限制的描述可以猜到,有两个限制,总数和频率。
- 总数是一天可以调用的次数,频率是每分钟可以调用的次数。
- 并且一旦达到限制阈值,文件的上传就会受到限制。
- 既然从官方文档中无法得到准确的值,那么是否可以通过实际测试得到这个准确的值呢?
- 答案是否定的。 实际测试中没有发现任何规律,所以这个限制是动态调整的,也符合官方文档。
如何避免受到 OneDrive API 限制?
短时间内不要上传太多文件,文件大小无所谓,关键是文件数量。
关于Office 365 E5自动续费问题:
- 根据网友多年使用开发者试用版的经验,只要使用自建私有API,就可以续订。
- 至于频率,没有标准,也不是越多越好。
- 刻意刷API可能得不偿失,尤其是使用GitHub Actions,因为服务器是微软Azure,这么多人用类似的方式无意义刷API,微软Azure想要识别是很容易。
欢迎转载《Rclone连接Onedrive速度慢?转存上传限速?配置API加速》
欢迎分享本文链接:https://www.chenweiliang.com/cwl-27906.html
网站地址:https://www.chenweiliang.com/
欲获取更多资讯内幕和秘技,欢迎进入Telegram频道:https://www.chenweiliang.com/go/tgchannel
没有评论:
发表评论