前言

关于aria2的安装可以看上一篇文章
搭建Aira2实现个人离线下载

安装Rclone并配置

获取 Client ID

进入Microsoft Azure 应用注册页面
点击新注册
名称随意,账户类型选择第三个(当时因为这个选错浪费了很多时间),重定向 URL 填写http://localhost,如下图


创建成功后页面跳转,复制应用程序(客户端) ID
以上即为Client ID

获取 Client secret

点击左侧栏证书和密码


点击新客户端密码-添加,如下图

然后你会看到值,复制并保存好

以上即为 Client secret(客户端密码)

设置API权限

点击左侧栏API权限-添加


点击Microsoft graph
依次添加权限Files.Read、Files.ReadWrite、Files.Read.All、Files.ReadWrite.All、offline_access、User.Read
完成后如下图

本地安装Rclone

先在本地下载Rclone
访问Rclone的官网https://rclone.org/downloads/,下载合适的版本


将下载的文件进行解压,从文件资源管理器进入到解压后的位置,在地址栏内输入cmd(亦可直接在cmd进入相应目录)

rclone authorize "onedrive" "Client_ID" "Client_secret"

在Client_ID和Client_secret填入刚刚复制的值,之后输入进cmd
enter跳转后登录,提示成功后打开cmd,复制token
{"access_token":"xxxxxxxxxxxxxxxxxx","expiry":"2022-04-30T10:32:48.9941651+08:00"} 整个内容(包含括号) ,复制并保存好。

服务器端安装

服务器端,使用官方的一键安装脚本

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

安装完成之后,输入

rclone config

开始配置,全程都有引导,选择n新建,名字随便起(例:onedrive),网盘种类选择onedrive(注意查看,不要搞错了)
不要依照它的提示再去windows执行,会报错
完成后验证一下是否能正常使用,替换以下命令中的 od-e5-api 并执行,注意最后有:(冒号)。网盘中出现 test 文件即表示成功

touch test && rclone move test onedrive:

onedrive替换成自己刚刚取的name
这里附一篇p3terx的文章可参考https://p3terx.com/archives/rclone-connect-onedrive-with-selfbuilt-api.html

挂载至VPS

安装fuse(依赖软件)
`yum install -y fuse
`
然后新建一个文件夹作为你挂载的目标,例如
`mkdir /home/onedrive
`
那么挂载命令就是:

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

完成后可关闭会话

Rclone挂载优化

可参考以下文章:
https://cyhour.com/1594/
https://blog.csdn.net/Nedved_L/article/details/101429006

配置aria2下载后自动上传至OneDrive

注意此处是下载完成后自动上传,故一次性不能下大于硬盘容量的文件
重新开启一个会话,输入

nano /root/.aria2c/aria2.conf

打开 Aria2 配置文件进行修改。找到“下载完成后执行的命令”,把clean.sh替换为upload.sh

# 下载完成后执行的命令
on-download-complete=/root/.aria2c/upload.sh

输入nano /root/.aria2c/script.conf
打开附加功能脚本配置文件进行修改,有中文注释,按照自己的实际情况进行修改,第一次使用只建议修改网盘名称。
网盘名称(RCLONE 配置时填写的 name)
drive-name=onedrive

重启 Aria2

以下2选1

执行以下命令

service aria2 restart

脚本选项重启

./aria2.sh

之后输入6

可以下载任意文件进行测试是否成功