0%

Aria2+Rclone+Onedrive实现全自动化下载

Aria2+Rclone+Onedrive 实现全自动化下载

本文主要为 Aria2+Rclone+Onedrive 及相关内容,内容可能较长,欢迎跳跃阅读。

本项目为VPSToolBox的一部分,欢迎 PR。

FAQ

惯例,我只解答一些主要的疑问,具体内容看相关章节。

  • 为什么要用 Onedrive?
  1. 便宜
  2. 可以白嫖
  3. 客户端支援良好
  4. 文件分享方便
  5. 没有被墙 !!!
  • 为什么要用 Rclone?
  1. Aria2 不支援直接写入 Onedrive,需要通过 API 中间件写入。
  2. Rclone 同时支援其他的云端服务,功能强大。
  3. 它就是好用,2333。
  • 为什么要用 Aria2?
  1. 支援广泛的下载协议,包括 http(s),ftp(s),Bittorrent,ssh 等。
  2. 客户端支援良好。
  3. 下载速度快,支援多线程下载。
  4. 没啥特别突出的缺点
  • Onedrive 怎么搞到手,有哪些坑?
  1. 掏钱购买,推荐Office 365 家庭车(Onedrive 1t),6 人组,平均 83 cny 一个人一年,。
  2. 白嫖,随时可能翻车,浅谈「白嫖」的 Office 订阅账户,更多请看这篇文章。
  3. 白嫖相关 : 用国内 edu.cn 高校邮箱白嫖来的 A1 订阅,onedrive 客户端可能无法使用,且无法调用 Rclone,因此不推荐使用。
  • 全自动化下载流程?

短答案:

Aria 客户端发送请求后一段时间后,文件就会出现在 Onedrive 里面了。

长答案:

Aria 客户端发送下载命令到服务器(VPS 之类的) –> 服务器接到请求开始下载,下载完成 –> 调用全自动化上传脚本 –> 调用 Rclone 命令进行上传,上传完成 –> Onedrive 客户端进行同步 –> 文件就在 Onedrive 里啦 !

前提条件

  1. 一台 VPS
  2. 一个可用域名
  3. 可用 Onedrive 账号

开始搭建

配置 Onedrive API

如果你不希望看见上传失败或者上传速度特别慢这种事情,请完成此步骤。

SRC URL: https://rclone.org/onedrive/#getting-your-own-client-id-and-key

  1. 打开这个网址,点击新增注册

api_1.png

  1. 按照下图所示进行配置

api_2.png

Web , http://localhost:53682/

  1. 复制下图中红框的内容,后面要用到

api_3.png

  1. 按照下图进行配置,复制下图中红框的内容(就是那个),后面要用到

api_4.png

  1. 按照下图进行配置,选中需要的权限即可。

2021.3.5 更新:

https://www.jianshu.com/p/072ff75d35ca

由于rclone 官网提供的教程有问题,会导致 rclone token 过期,因此请使用以下权限设置。

onedrive_update_6.png
onedrive_update_5.png

下面两个框要选中

onedrive_update_7.png

以下选项改为

onedrive_update_8.png

这样 Onedrive API 就配置完成了。

以下两个值需要复制出来,后面需要用到,分别是應用程式 (用戶端) 識別碼以及用戶端密碼的值


安装Rclone

1
2
curl https://rclone.org/install.sh | bash
apt-get install fuse -y

配置 Rclone

自动化配置

2021.3.8 更新 : 新增全自动化配置方法

Src File link : 脚本地址

运行以下命令以实现全自动化配置

1
curl -Ss https://raw.githubusercontent.com/johnrosen1/vpstoolbox/master/install/rclone_config.sh | sudo bash

流程和手动差不多,但不用担心输错问题。

手动配置

1
rclone config

rclone_1.png

选择New remote,输入n

rclone_2.png

填入name,这个变量后面要用到,方便起见,建议直接填onedrive

rclone_3.png

找到26 / Microsoft OneDrive,填入前面的数字 26(可能随着更新改变,请勿照抄)

rclone_4.png

这里的client_id填入之前获取的應用程式 (用戶端) 識別碼

rclone_5.png

这里的client_secret填入之前获取的用戶端密碼的值

rclone_6.png

选择你的 Onedrive 类型,我个人用的家庭版,故选 1。

rclone_7.png

不需要配置高级设置,故选n

rclone_8.png

由于我们是在 VPS 上操作,VPS 没有浏览器,故选n

rclone_9.png

由于 Onedrive 需要 Outh 认证,需要浏览器操作,故需要本地也安装 Rclone,前往https://rclone.org/downloads/下载安装。

rclone_download.png

因为这是个 cli 软件,使用我们需要使用 powershell 就行操作。右键 win 标志,选中 Powershell 管理员。

rclone_win_1.png

找到解压后的文件路径并复制

rclone_win_2.png

输入cd 你的路径

rclone_win_3.png

输入 VPS 中显示的命令,注意命令前面需要添加一个.\

rclone_9.png

2020.3.6 更新: 这里推荐使用 Firefox 的隐私窗口并禁用 Cookie 以继续,否则后期可能导致 Token expire 问题。

会弹出一个浏览器窗口验证,全部选择是即可,成功后会出现以下内容

用国内 edu.cn 邮箱白嫖的 A1 订阅有几率在此处失败,因此不推荐使用。

rclone_win_4.png

复制两个{...}中间的内容并将其黏贴到 VPS 窗口中即可

rclone_10.png

选择你的 Onedrive 类型,我个人为家庭版,故选 1

rclone_11.png

接下来的选项全部选 y 即可,不值得截图。

最后,配置完成后退出配置页面

rclone_12.png

这个name以后要用到。

测试 Onedrive 连通性

1
rclone lsd onedrive:

如果有结果,则表示 Onedrive 已连接成功。

rclone_13.png


安装 Aria2 以及 AriaNG

方法一:

直接使用一键脚本,选择扩展安装,然后选中 Aria2 即可。

方法二(手动安装,不推荐):

由于大多数相关内容本博客以及网上其他人的教程已经写过,故不再重复叙述,仅讲解基本流程。

  1. 安装 NGINX
  2. 安装 Acme.sh 获取 ssl 证书
  3. 安装 Aria2 以及 AriaNG
  4. 配置 NGINX 反向代理
  5. 测试可用性

好的,Aria 以及 AriaNG 安装完成了。


四. 配置全自动上传脚本

如果你用的我的脚本安装的 Aria2 以及 AriaNG,那么上传脚本的位置在/etc/aria2/

这个目录下的aria2.conf为 Aria 的主配置文件,autoupload.sh为上传脚本。

启用全自动上传脚本,默认为禁用状态。

1
2
3
cd /etc/aria2/
ls -l
nano aria2.conf

找到#on-download-complete=/etc/aria2/autoupload.sh,去掉前面的#即可,ctrl+x 退出。

aria_1.png

重启服务systemctl restart aria2使配置生效,查看服务状态,systemctl status aria2

aria_2.png

配置全自动上传脚本

1
nano autoupload.sh

将下图的变量设置成之前配置的。

auto_1.png

更多可用的高级自定义配置,具体看下图。

auto_2.png

默认本机下载位置为/usr/share/nginx/aria2/,手动删除是可以的。

配置完成后 ctrl+x 退出即可,立即生效。


测试可用性

登录 AriaNG,一般为https://$domain/ariang/,修改以下内容,测试 Aria 连通性。

ariang_1.png

ariang_2.png

已连线则表示连接成功

ariang_3.png

为了测试方便起见,选用Debian iso进行测试。

https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.8.0-amd64-netinst.iso

如果一段时间后此文件出现在 Onedrive 里面,则测试成功

如果测试失败,请自行检查问题所在,/var/log/rclone/upload.log为全自动上传脚本 Log 位置。


搭配 Nextcloud 挂载实现文件实时查看及分享功能

挂载 Onedrive

更新于 2021.3.5

新建文件夹用于挂载 Onedrive

1
mkdir /usr/share/nginx/nextcloud/data/onedrive/

写入 rmount systemd 文件以实现开机自启,掉线重启等。

此为一行命令,请直接复制黏贴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  cat > '/etc/systemd/system/rmount.service' << EOF
[Unit]
Description=Rclone mount service
Documentation=https://rclone.org/commands/rclone_mount/
After=network.target

[Service]
Type=notify
User=root # 我比较懒,你可以不用root用户的
Group=root
RemainAfterExit=yes
ExecStart=/usr/bin/rclone mount onedrive:/ /usr/share/nginx/nextcloud/data/onedrive/ --syslog --progress --allow-non-empty --allow-other --vfs-cache-mode full --use-mmap --umask 000
ExecReload=/usr/bin/kill -SIGHUP \$MAINPID
ExecStop=/usr/bin/kill -s STOP \$MAINPID
LimitNOFILE=65536
RestartSec=3s
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

启动挂载

1
2
systemctl daemon-reload
systemctl enable rmount --now

查看是否启动成功

出现running即为成功

onedrive_update_2.png

配置 Nextcloud

按照下图所示进行配置即可。

onedrive_update_3.png

启动分享功能

onedrive_update_4.png

Windows 挂载

更新于 2021.4.24

安装 winfsp
https://github.com/billziss-gh/winfsp

挂载文档
https://rclone.org/commands/rclone_mount/#mounting-modes-on-windows

挂载命令

1
.\rclone mount onedrive:/ f:\onedrive --vfs-cache-mode full --allow-non-empty --allow-other --use-mmap --umask 000

f:\onedrive 改成你自己的即可。


写在最后

“希望能够出一个 OneDrive+Aria2 配套的教程呢”

本文受以上不知名人士启发而写,欢迎告诉我你是谁,2333。