2023最新如何rclone挂载onedrive方法

前言:onedrive的API已经越来越抽风了,经常出现挂载不上的情况,比如:

Failed to query available site by relative path: HTTP error 401 (401 Unauthorized) returned body: "{"error":{"code":"InvalidAuthenticationToken","message":"CompactToken parsing failed with error code: 80049217","innerError":{"date":"2023-01-12T12:32:23","request-id":"93326b95-0fca-458b-a122-18e303fd73cc","client-request-id":"93326b95-0fca-458b-a122-18e303fd73cc"}}}"

现在我要实现的功能是,在甲骨文ARM机子上安装plex或者emby等系统,同时用rclone挂载onedrive的sharepoint存储来实现大存储播放。需要怎么实现呢?

原理很简单,就是要利用到webdav功能。

1.首先我们需要先安装并利用Alist这个开源网盘挂载程序。

具体教程不在这里详述了,请自行百度或谷歌。

2.在Alist后台添加onedrive存储,必须先在以下链接注册应用:

https://tool.nn.ci/onedrive/request

先点击创建应用,会跳到新注册页面。

在注册应用时,重定向 URI 选择web,链接填写:

https://tool.nn.ci/onedrive/callback

如图:

然后点击左侧的证书和密码,创建新客户端密码,截止期限选最大值。

然后复制值。

回到前文所述的链接(https://tool.nn.ci/onedrive/request),复制应用程序(客户端) 的值和密码的值粘贴到对应的IDclient_id和client_secret,然后点击获取刷新令牌。

如果需要使用sharepoint里的存储,直接复制sharepoint的链接,生成站点id

在alist后台新建存储,选择onedrive,将上述生成的内容粘贴到对应内容并提交。

3.其实这样Alist已经自动创建了webdav。

回到vps,一键安装rclone

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

然后就是rclone config命令创建新的挂载(这里略过),不过这里一定要选挂载webdav而不是onedrive!!!

会提示输入webdav挂载链接,输入:

http://你的Alist网站域名或者IP和端口号/dav/你创建的驱动名称(其实就是存储名称)

账号和密码就输入你的Alist账号和密码。

4.开始新建挂载位置进行挂载。

挂载前一定要安装fuse:

# Debian/Ubantu
apt-get update && apt-get install -y fuse
# CentOS
yum install -y fuse

然后创建挂载位置,这里挂载到home文件夹下,比如:

#新建本地文件夹,路径自己定
mkdir /home/od

使用挂载命令:

rclone mount od: /home/od --allow-other --allow-non-empty --vfs-cache-mode writes --daemon

测试是否挂载成功:

df -h