CentOS使用rclone在服务器上挂载OneDrive

OneDrive不仅可作个人网盘使用,之前也分享过用oneindex来搭建下载站。现在再分享一下rclone这款程序,可以把OneDrive挂载在服务器上,当做扩容盘使用,用来进行数据备份或数据分享等。
目前,最新的rclone正式版本是V1.48版本。
由于rclone配置过程中,需要用到图形界面去获取OneDrive的token信息,所以需要用到Windows带桌面系统。
在Windows中,直接下载压缩包:点击下载,然后解压。接着用管理员权限运行CMD,cd命令进入rclone.exe目录后,可以执行:

rclone authorize "onedrive"

命令进行配置,也可以执行以下命令并手动填写相关内容(##后面为备注文字,不用输入):

rclone config
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n  ##这里输入字母n后回车
name> YoursName  ##填写远程项目的名称,可随便填
然后会出现很多选项,例如:
18 / Microsoft Azure Blob Storage
   \ "azureblob"
19 / Microsoft OneDrive
   \ "onedrive"
……
26 / Yandex Disk
   \ "yandex"
27 / http Connection
   \ "http"
Storage>19  ##OneDrive在第19选项,输入19回车。不同版本的rclone选项会有不同,灵活处理。
Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>    ##这里不用填,直接回车
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>    ##这里不用填,直接回车
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n  ##输入字母n回车
Remote 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> y  ##输入y回车

此时,电脑会自动打开浏览器,登录你的OneDrive账号,网页授权后会自动跳转,页面显示 Success! 时,返回到CMD命令窗口继续填写:

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  ##输入数字1回车
Found 1 drives, please select the one you want to use:
0:  (personal) id=511da6XXXXXX
Chose drive to use:> 0  ##输入数字0回车
Found drive 'root' of type 'personal', URL: https://onedrive.live.com/?cid=511da6XXXXXX
Is that okay?
y) Yes
n) No
y/n> y  ##输入y回车
--------------------
[onedrive]
type = onedrive
token = {"access_token":"EwCA——这里会出现一大串的数字英文字符——"expiry":"2019-08-14T15:26:57.7360245+08:00"}
drive_id = 511da6XXXXXX
drive_type = personal
##上面的那个token信息,把等号右边的信息复制下来保存
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y  ##输入y回车
Current remotes:
Name                 Type
====                 ====
YoursName            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回车,退出配置

使用root用户登录CentOS系统服务器,可以使用官方的一键安装命令进行安装:

curl https://rclone.org/install.sh | sudo bash

注意一点,Windows和CentOS两个系统的rclone版本要一致,否则后面输入OneDrive的token时,会出现错误。
也可以执行以下命令手动安装:

curl -O https://downloads.rclone.org/v1.48.0/rclone-v1.48.0-linux-amd64.zip
unzip rclone-v1.48.0-linux-amd64.zip
cd rclone-v1.48.0-linux-amd64
cp rclone /usr/bin/
chown root:root /usr/bin/rclone
chmod 755 /usr/bin/rclone
mkdir -p /usr/local/share/man/man1
cp rclone.1 /usr/local/share/man/man1/
sudo mandb

安装完之后,执行命令:

rclone config

来进行配置,步骤和内容与Windows下类似,有一处要注意:

Remote 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:
        rclone authorize "onedrive"
Then paste the result below:
result> {"access_token":"EwCA——这里会出现一大串的数字英文字符——"expiry":"2019-08-14T15:26:57.7360245+08:00"}  ##这里填上之前保存的token信息,回车后按Windows下的类似再进行配置

配置完成后,再在CentOS服务器上执行:

yum -y install fuse
mkdir -p /home/onedrive
rclone mount YoursName:/ /home/onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
#如果在上传文件过程中出错,估计是切片引起的,可以用以下命令:
rclone mount YoursName:/ /home/onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --vfs-cache-mode writes
#如果需要后台运行,可以使用以下命令:
nohup rclone mount YoursName:/ /home/onedrive &

YoursName:/ 的意思,即是挂载你OneDrive的根目录,你可以指定文件夹挂载,如 YoursName:/music
可用 df -h 命令查看挂载情况,如无特别问题,一般是已经挂载成功了的。
如需要卸载磁盘,执行命令fusermount -u /home/onedrive即可。

发表评论