vps使用rclone挂载OneDrive详细记录

之前写过一篇使用rclone挂载Google Drive的记录,这次来补上挂载onedrive的坑。挂载方法其实大同小异,网上也有许多文章进行介绍。不过有些介绍实在是太简略了,甚至只是简单的复制了官方的示例,导致依旧看的一头雾水,所以我对rclone挂载onedrive的流程进行了整理和记录,希望能对大家有所帮助,能一次解决问题。

1. 创建OneDrive API

为了实际使用中更稳定的体验,避免因为共享API达到使用限制而引发错误,绝对推荐创建自己的API。
若要创建自己的API,务必确保你的账号拥有API权限!

1.1 获取client_id

首先访问Microsoft Azure应用注册,登录账号后点击应用注册

应用注册

点击左上角的新注册

新注册

如图所示进行配置,名称可以随便写,账户类型选择第三项

注册应用程序

点击注册后可以看到你的应用的相关信息,复制好 应用程序(客户端)ID ,这个就是 client_id

获取client_id

1.2 获取client_secret

依次点击证书和密码新客户端密码,在截止期限中将时间选择为最长(即两年)

创建新客户端密码

然后就可以看见值和机密ID,我们只需要记录下就可以,这个就是 client_secret

获取client_secret

1.3 添加API权限

依次点击API权限添加权限Microsoft Graph,在右边栏搜索并添加权限。

需要 Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, offline_access, User.Read 这几项

添加权限

添加完成后应该是这样

API权限展示

1.4 添加身份验证

依次点击身份验证添加平台Web

添加身份验证

在重定向URI中输入 http://localhost

设置重定向

至此,OneDrive API创建完成

2.添加rclone配置

注:由于OneDrive的授权key可能会很长导致rclone远程配置中无法接受key,目前rclone没有解决这个问题,因此可能挂载过程中会出现问题,如果出现了下文描述的问题,请参考第三部分来解决。

2.1 安装rclone

由于vps中没有桌面环境,无法独立完成配置,所以vps和本地电脑都要安装rclone。

vps中执行

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

即可成功安装

本地电脑请点此下载rclone并解压

2.2 在rclone中配置OneDrive

首先在vps中执行

rclone config

初始状态下什么配置都没有,点击 n 创建一个新配置

添加配置

接着会让你填写一个名称,这个随意填, 例如 odrive

然后会要求选择要挂载的网盘,找到 Microsoft OneDrive 并输入其前面的序号

接下来会要求输入 client_id client_secret ,将第一步中获取的值依次输入。

地区按照你的账号选择,比如我的就是普通的全球账户,就选择 1

填写信息

接下来会让你选择你是否有桌面环境,因为vps环境下没有桌面环境,因此选择 N

输入后会看到一段提示,将红框内这段命令复制到本地的电脑执行。

填写信息2

现在在本地打开命令行,进入到rclone所在的文件夹内,粘贴上面的命令并执行

不出意外的话,会弹出浏览器窗口让你登录并授权,按要求操作即可。

操作完成后,会看到成功的提示

成功授权

此时回到本地的命令行查看,会发现出现了一段授权code,复制这段code并粘贴回vps。

注:如果成功看到下一步操作,请忽略第三节并继续配置,如果出现以下错误,不要担心,请按照第三节的方法操作。

如果遇到类似下图的错误:

Couldn't decode response - try again (make sure you are using a matching version of rclone on both sides: invalid character 'e' looking for beginning of value
rclone的bug

则按照第三节的处理。

接下来会选择使用哪种类型的账户,我使用的是OneDrive,故选择 1

选择账户类型

选择drive

选择drive

结束!请看第四节挂载。

3.挂载失败的解决方法

其实解决这个问题我们要使用的就是最简单粗暴的方式,没错:在本地配置好,把配置文件复制过去!

打开本地命令行并进入rclone目录下,按照类似于第二节的方式重新配置,只不过这次选择是否有桌面环境时选择 Y ,这样子登录账户授权后就会直接成功,不会出现之前的问题了。

在本地成功添加配置后,在本地rclone目录下和远程vps分别执行

rclone config file

这个获取到的是rclone配置文件的目录。现在,直接把本地配置完成的配置文件复制到vps上去!

放心,这个配置文件在vps上也是能直接用的,复制完成后,在vps上执行

rclone config

嗯,能看到你在本地添加的OneDrive配置就是没问题了。

4.挂载到vps

首先新建一个文件夹用于挂载:

mkdir /onedrive

开始挂载:

rclone mount odrive: /onedrive --allow-other --allow-non-empty --vfs-cache-mode writes --daemon

其中 odrive 是rclone配置时输入的配置名称,/onedrive 是挂载目录,–daemon 是指后台运行。

此时可能会报错:

Fatal error: mount not ready

这是因为缺少依赖,我们选择安装

centos系使用:

yum install -y fuse3

debian系使用:

apt install -y fuse3

再次执行挂载命令,如果没有报错,就是挂载成功了。

检查挂载:

df -h

应该看到(我这里是用挂载名song,挂载目录/music进行的测试截图):

挂载成功

接下来可以进行一些测试,如果能正常读写文件,证明挂载没有问题。

-=||=-收藏

评论

  1. Laizer
    8月前
    2023-2-03 14:39:25

    受益匪浅🙂

  2. 受益匪浅
    3月前
    2023-6-26 20:56:35

    nice

  3. abc
    5天前
    2023-9-26 12:20:39

    我在”现在在本地打开命令行,进入到 rclone 所在的文件夹内,粘贴上面的命令并执行”这一步的时候提示无法重定向,失败了。请问是需要开发者的账户才行吗?个人的可否?

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇