使用rlcone挂载onedrive网盘

本文记录了挂载onedrive云盘的详细过程,包括申请api,获取token中遇到的问题以及解决方法。

rclone支持数十款网络热门云盘的挂载,将云盘挂载到本地后可以很方便的进行文件管理,比如复制到本地挂载目录即可上传到云盘,移出即可下载。

安装Rclone

Rclone的官网提供了各个系统的安装包,并且为Linux/macOS提供了一键安装脚本,安装起来十分方便。

一键脚本

官网依旧提供了测试版的一键安装脚本,以下为正式版的安装命令:

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

配置文件

终端输入rclone config进行配置

shell
  ~ rclone config
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>

我由于已经创建过一个了,所以在顶端会显示已经创建的名称和厂商

键入n以创建新的远程配置,并在name中输入方便区分的名称

之后就可以选择要挂载的类型,现在一共有四十多种, Microsoft OneDrive在27号所以键入27(这个序号会随着rclone的更新而改变,所以要自己找到对应的序号)

shell
...
27 / Microsoft OneDrive
   \ "onedrive"
...

Storage> 27
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>

client_idclient_secret可以使用rclone本身提供的api(直接回车),不过rclone官方的api由于大多数人使用,通常下载速度会受到限制,自己申请注册应用可以解决这一问题。

获取Onedrive的client_id和client_secret

进入Azure新注册一个应用

名称随意,第二项选择任何组织目中的账户和个人账户,这个选项不一定会在第三个,也要看清楚选择

重定向URL选择Web,并且URL填http://localhost:53682/,注册即可

进入到应用到中首页右侧概要下第一个应用程序(客户端) ID便是client_id,接下来获取client_secret

在左侧菜单栏证书与密码页面中选择新建客户端密码,说明随意,时间选择最长的24月

之后会出现刚刚新建的客户端密码,记录下(切记不是机密ID,并且此值只会显示一次),这便是client_secret

但还没有结束,在左侧菜单栏中选择API权限添加权限- Microsoft Graph-委托的权限,找到Files相关的权限全钩上(或者根据自己的需要选择),之后关于获取api方面的事情全部结束

获取Token

填入client_idclient_secret 后会需要选择onedrive地区,这个也很好分辨,onedrive管理页面url顶级域名为com即是Global

接下来第一个配置选择no

shell
Edit advanced config?
y) Yes
n) No (default)
y/n> n
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>

auto config选no的话会要求你在本机上安装rclone,根据他的流程来获取code并复制到shell中,我当初这里老是失败,我便用了另一种方法(获取code的方法在rclone官网上有详细的流程,由于我并没有使用,所以不在此赘述),在本机上配置好后使用scp将配置文件复制到服务器上。

另一个需要注意的点是只有onedrive需要这样获取token,Googledrive要更方便一点,选no后会提供一个链接,获取的code复制到shell中即可,以后可能会提到

如果是在电脑上重新走一遍上面的安装流程,在获取第二个配置项Use auto config?选yes,rclone会完成大部分工作,本人只需登陆一下并授权即可

配置尾声

后面配置根据提示选择type,挂载目录就完成了

使用rclone config file获取配置文件路径,并使用scp复制到VPS上

注:vps上也需要有相对应的目录scp才能复制成功,只需也运行rclone config,到client_idclient_secret那一步直接回车再退出即可

shell
  ~ rclone config file
Configuration file is stored at:
/Users/bailu/.config/rclone/rclone.conf
  ~

挂载和常用命令

事先需要安装依赖fuse3

apt-get update && apt-get install -y fuse3

首先需要创建一个用于挂载的本地目录

mkdir /Onedrive

使用mount挂载为本地磁盘:

rclone mount Onedrive:/ /Onedrive --copy-links --allow-other --allow-non-empty --umask 000 --daemon

根据自己的情况修改mount后的参数,Onedrive:/指的是本地配置文件中Onedrive的根目录,挂载到/Onedrive下,挂载完成后使用df -h即可查看到新挂载的云盘

move和sync

挂载完成后是无法让aria2直接下载到挂载的硬盘中的,会出现文件系统错误(17),只能先下载到服务器硬盘中再上传了。

rclone movesync的唯一区别是,move在移到云端后本地并不会留下原始文件,相当于剪切,而sync则相当于复制,上传成功后在本地会留下原始文件,使用事例如下

rclone move /xxx/xxx Onedrive:/download/

在aria2中配置下载完成后运行sh脚本即可实现自动上传

树莓派烧录Openwrt镜像 以及一些踩坑
通过监管OTA更新系统到已关闭验证的系统