利用VPS实现离线下载至Onedrive

材料:一台VPS,带宽大流量多者优先,一个OneDrive账号
实验环境:centos7

1.安装Aria2

此处安装aria2使用P3TERX的一键安装脚本(自带上传功能)

在SSH运行下面的代码:

wget -N git.io/aria2.sh && chmod +x aria2.sh && ./aria2.sh

即可自动安装aira2
等待安装完成后,记下密钥,配置远程下载要用

此外,可以再次输入

./aria2.sh

打开脚本查看和修改aira2配置

2.利用AriaNG可视化

搭建宝塔面板,官网
在宝塔面板中新建网站,转到网站根目录,删除所有文件
访问AriaNG的发布地址,下载最新版本的AllinOne文件,并上传到网站根目录(或者直接用宝塔的远程下载)
此时访问网站绑定的域名应当能够看到AriaNG的界面,否则,检查服务器提供商处是否开启80端口

在宝塔面板和服务器商两处都开启6800端口(airaNG和aria2之间的通信端口)

ariaNG中按下图配置:

3.安装和配置Rclone

为了完成对rclone的配置,本地需要安装一个rclone,官网

下载对应文件,解压,进入文件夹,在资源管理器地址栏输入cmd,回车就会在当前路径打开命令提示符。输入以下命令:

rclone authorize "onedrive"

接下来会弹出浏览器,要求你登录账号进行授权。授权完后命令提示符窗口会出现以下信息:

If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Paste the following into your remote machine --->
{"access_token":"xxxxxxxx"}  
<---End paste

此时复制{xxxxxxxx}整个内容,并保存好,后面需要用到

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

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

安装完成之后,输入

rclone config

开始配置,全程都有引导,选择n新建,名字随便起,例如onedrive,网盘种类选择onedrive,之后一路回车,

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> {"XXXXXXXX"} 

将之前复制的结果贴到result后面
之后选1,按照实际情况选择编号,确认设置,按q退出

此时OneDrive已经设置好了,接下来是将其挂载到VPS上,安装fuse(依赖软件)

yum install -y fuse

然后新建一个文件夹作为你挂载的目标,例如

mkdir /home/onedrive

那么我的挂载命令就是:

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

完成之后可以关闭会话

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

注意此处是下载完成后自动上传,故一次性不能下大于硬盘容量的文件

输入

nano /root/.aria2c/aria2.conf

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

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

nano 编辑器的操作方法参见《Linux 下适合新手的文本编辑器 nano 使用教程》

输入

nano /root/.aria2c/script.conf

打开附加功能脚本配置文件进行修改,有中文注释,按照自己的实际情况进行修改,第一次使用只建议修改网盘名称。

# 网盘名称(RCLONE 配置时填写的 name)
drive-name=onedrive

重启 Aria2 。脚本选项重启或者执行以下命令:

service aria2 restart