Windows平台下使用 Rclone 挂载 OneDrive 为本地硬盘

参考:https://zhuanlan.zhihu.com/p/139200172

Rclone (rsync for cloud storage) 是一个命令行程序,用于同步文件和目录,支持常见的 Amazon Drive 、Google Drive 、OneDrive 、Dropbox 等云存储。本文将演示在 Windows 平台下将 OneDrive 挂载为本地硬盘,并使用跨平台的 Rclone GUI 连接到云盘。

rclone下载地址

首先下载适用于 Windows 的 rclone

官网下载:

Rclone downloadsrclone.org/downloads/

GitHub下载:

rclone/rclonegithub.com/ncw/rclone

rclone官网中,Windows 平台下选择下载 AMD64 - 64 Bit

img

或者在github下载。

img

下载后解压到一个英文路径中。

img

必安装

另外在Windows平台使用rclone还需要另一个依赖工具winfsp,下载地址:

http://www.secfs.net/winfsp/download/www.secfs.net/winfsp/download/

下载后一路安装即可。

img

rclone配置环境变量

  1. 在电脑桌面右键点击“此电脑”的“属性”选项
  2. 选择“高级系统设置”选项
  3. 在系统变量中找到path,添加刚才解压后的路径

img

检查rclone是否配置成功

win+X,然后按A 打开 powershell ,当然也可以去打开 cmd ,输入rclone --version,如果出现下面的输出则安装成功,否则检查上面步骤的环境变量是否配置正确。

img

开始配置rclone

在终端中依次输入以下命令行,请根据下的步骤进操作。

第一步在终端输入 rclone config

1
2
3
4
5
6
7
8
$ rclone config

n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config

第二步输入n创建新的配置

1
$ e/n/d/r/c/s/q> n

第三步 输入一个英文名称,用来表示,中间也不要有空格

1
$ name> OneDriveLocal

第四步 输入要配置的网盘类型 因为我们要配置Microsoft OneDrive 因此输入5(具体问题具体分析)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 / Microsoft OneDrive
\ "onedrive"
Storage> 5

第五步 要输入 client_id 时直接回车

1
2
3
4
5
** 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_secret 时直接回车

1
2
3
4
Microsoft App Client Secret                                  
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>

第七步 输入n 不进行高级配置

1
2
3
4
Edit advanced config? (y/n)                                  
y) Yes
n) No (default)
y/n> n

第八步 输入y 使用自动配置授权

输入y后会打开默认浏览器 登录Microsoft账号后 选择 是 即可

1
2
3
4
5
6
7
Remote config                                                
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n> y

第九步 输入1 因为现在我配置的是 OneDrive Personal or Business 类型的网盘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=sUuYaGWtxruA81JiCokJGg
Log in and authorize rclone for access
Waiting for code...
Got code
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

第十步 输入0

1
2
3
Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=b!qDQvcsZUTU-8eoYyKmtyyP1Jc0D8urZLlkATnfH1nWdJ1kkbrLsvQZLzVUTpeTrc
Chose drive to use:> 0

第十一步 输入y

1
2
3
4
5
Found drive 'root' of type 'business', URL: https://pmjs-my.sharepoint.com/personal/wld_365_w/Documents
Is that okay?
y) Yes (default)
n) No
y/n> y

第十二步 输入y

1
2
3
4
5
6
7
8
9
10
[OneDrive_local]
type = onedrive
token = {"access_token":"eyJ0UxjTLIAA","expiry":"2020-02-10T11:32:10.852646+08:00"}
drive_id = b!qDvcsZUTU8eoYyKmtyyP1Jc0D8urZLlkTnH1nWdJ1kbrLsvQZLzVUTpeTrc
drive_type = business
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>y

此时,就会出现刚刚配置好的网盘名称了

img

最后输入q退出配置即可

1
2
3
4
5
6
7
8
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

C:\Users\你的用户名\.config\rclone文件夹下就可以看见配置文件 rclone.conf 啦。

img

5、挂载OneDrive为本地硬盘

git bashcmd 中输入以下挂载命令:

1
rclone mount OneDriveLocal:/  Q: --cache-dir E:\OneDrive --vfs-cache-mode writes &

其中:

OneDriveLocal 替换为你自己前面设置的名称 。

Q: 替换为你想要挂载后硬盘的盘符名称即可,记得不要和本地的C盘、D盘等重复。

E:\OneDrive 为本地缓存目录,可自行设置 。

出现:The service rclone has been started 则说明挂载成功。

然后输入 exit 退出终端即可。

img

然后就可以看见本地多了一个盘,往里面复制文件就是上传,从里面复制文件到其它盘就是下载。

6、设置开机自启动挂载

进入C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

运行中输入%appdata% 后点击确定即可进入

创建一个名称为 startup_rclone.txt 的文件

1
CreateObject("WScript.Shell").Run "rclone mount OneDriveLocal:/  Q: --cache-dir E:\OneDriveLocalCache --vfs-cache-mode writes ",0

保存后改文件后缀.txt为.vbs即可,仅需要修改""内的东西,最后没有’&’

img

Linux平台下使用Rclon 挂载 OneDrive 为本地硬盘

参考:https://blog.csdn.net/qq_46264836/article/details/131964857

参考:https://blog.xms.su/archives/91

申请OneDrive API

前往Microsoft Azure管理界面,登录你的微软账号,打开“应用注册”服务。

img

img

img

注册成功后会跳转到应用首页面,记下图中所示的“应用程序(客户端) ID”,供将来挂载使用。

img

然后再点击“证书与密码”→“生成客户端密码”。注意,这里的密码一般是有时间限制,到时需要重新换密码

img

添加密码后,记录我们刚刚创建的密码值,供将来挂载使用。注意这里一定要将密码记录下来,因为它只显示一次。

img

接下来,点击“API权限”,为我们的API获取权限。Files中的权限全部勾选就可以了。

img

这一步做完我们就获得了OneDrive的API,以及客户端ID以及密码值

自启动挂载OneDrive网盘

获取认证token

可以挂载Windows以及Linux。以下演示Linux(Ubuntu系统)挂载OneDrive

rclone下载对应操作系统安装包,后面需要登录获取token我VPS没有浏览器因此需要下载安装Windows版本的rclone。

  1. 下载windows系统下的rclone并解压,按win+R调出运行,输入“cmd”。
  2. 输入cd + 解压的文件夹路径,进入rclone文件夹下,再输入以下命令开始授权。(如果是win11,进入目录右键在终端打开)

ID和密码替换成你自己的

1
rclone.exe authorize "onedrive" "客户端ID" "密码值"

此时,浏览器将会自动打开,然后登录会为我们为刚才创建的api授权。

img

img

接受后页面返回这个就说明成功了,控制台会返回token。

img

token先保留,后面绑定会用到。

img

安装rclone

在Ubuntu安装rclone:

1
2
3
apt update
apt install curl && apt install fuse3
curl https://rclone.org/install.sh | sudo bash

安装成功后,命令行输入rclone config挂载OneDrive网盘,输入“n”新建一个云盘,并输入名称。

这个名称就是挂载后磁盘的名称,我起的是“OneDrive”。

img

接下来找对应OneDrive的序号,这个随着版本更新序号可能会变动,注意看清楚。

img

输入序号后,就用到前面保存的客户端ID(client ID)、密码值(Value),不是SecretID。

img

然后是网盘类型。此处注意区分你的网盘是什么类型,国内大部分都是(1),部分高校是世纪互联版(4)。

img

接下来不进行高级配置(n),也不进行自动配置(n)。

img

然后就用到我们上面获取的token了,我们将整个大括号复制填入。

img

img

配置完成后,我们选择类型为OneDrive Personal or Business(1)。再选择OneDrive(1)此时系统会读取网盘路径,我们输入y确认。

img

img

最后,程序还会列出主要信息让你再次确认:

img

此时,我们看到一个"onedrive"类型的、名为“OneDrive”的网盘已经创建好,我们输入q退出程序,准备将这块网盘挂载到本地目录。

img

2.3下载rclone自启动挂载脚本
  • 下载并编辑自启脚本
1
2
wget -N git.io/rcloned 
vim rcloned
  • 修改内容:
1
2
3
NAME="OneDrive"  #rclone 配置时填写的name
REMOTE='/VPS' #远程文件夹,网盘里的挂载的一个文件夹,留空为整个网盘
LOCAL='/root/OneDrive' #挂载地址,VPS本地挂载目录
  • 设置开机自启
1
2
3
4
5
6
7
8
mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
#(选项一)Debian/Ubuntu
update-rc.d -f rcloned defaults
#(选项二) CentOS
chkconfig rcloned on
# 最后,启动脚本!
bash /etc/init.d/rcloned start

看到 [信息] rclone 启动成功 ! 即可。

查看挂载磁盘

1
df -h

img

这样就可以了,遇到问题可以留言评论看到就会回复!

管理
1
2
3
4
5
6
7
8
9
10
11
#开始挂载 
bash /etc/init.d/rcloned start

#停止挂载
bash /etc/init.d/rcloned stop

#重新挂载
bash /etc/init.d/rcloned restart

#查看日志
tail -f /$HOME/.rclone/rcloned.log
卸载自启挂载
1
2
3
4
5
6
7
bash /etc/init.d/rcloned stop

update-rc.d -f rcloned remove # Debian/Ubuntu

chkconfig rcloned off # CentOS

rm -f /etc/init.d/rcloned