有一个5T的OneDrive,一直在用oneindex做列表,期间因为oneindex无法实现下载功能,有一段时间转向了pyone,但是作者已经半年没音信了,有一些适配和使用的小问题,于是只好自己重新写一个了。
Aria2Drive为一键脚本,将会为你打造一个利用aria2和onedrive实现离线下载功能的私有网盘,只支持Debian 9(主要是因为没时间去适配其他系统,我主用Debian系),考虑到稳定性问题,推荐使用纯净系统进行运行和安装。

地址为https://github.com/uselibrary/Aria2Drive

一键脚本如下,推荐边运行脚本边看下面的教程:

wget --no-check-certificate -O Aria2Drive.sh https://raw.githubusercontent.com/uselibrary/Aria2Drive/master/Aria2Drive.sh && chmod +x Aria2Drive.sh && bash Aria2Drive.sh

首先,你得有一台具有root权限的运行Debian 9的服务器/VPS,以及一个OneDrive账号。
以下外部软件将会被安装(将会自动安装,不必过多关注),以实现离线下载和网盘列表的功能:
基础性软件:vim git curl wget unzip
维持性软件:nginx php-fpm php-curl
功能性软件:aria2 AriaNG Oneindex rclone

安装过程

1 粘贴复制上述的一键脚本并运行,系统将会检查是否为Debian 9系统,如果不是将会自动退出,同时也会检查是否安装过nginx,apache和caddy,如果安装过也将自动退出。如果想在其他版本的系统安装,比如Ubuntu,理论上只要自行把这段命令删除即可。
2 检查通过后,将会自动更新服务器并安装必要的基础性和维持性软件,以及开启bbr加速。
3 系统将会自动配置nginx的配置文件,期间需要你输入域名,即以后你的网盘的网址。
4 系统将自动安装oneindex,并且配置自动更新OneDrive缓存任务。oneindex的绑定请参考官方说明,https://github.com/donwa/oneindex
5 下载功能由aria2和AriaNG共同实现,aria2负责下载,AriaNG负责用户操作。1.30版本的aria2将会被安装,AriaNG则会使用最新的版本进行安装。期间需要你设置aria2的密码,作为用户凭证避免其他人随意使用。请避免复杂的特殊字符,否则可能会导致失败,密码会被储存在/etc/aria2/aria2.conf中。使用地址为 example-domain.com/AriaNG, example-domain是你的域名。systemd会负责aria2的进程守护,systemctl start/stop/enable/disable/restart aria2,默认已经设置了开机自启。下载的文件将会被储存在/home/download/文件夹。在使用时,需要先在Aria RPC密钥处填入你设置的密码,并且刷新浏览器即可,如下图。
ariang142026.png
6 由aria2/AriaNG下载后的文件,将会利用aria2的on download complete事件触发自动上传脚本,使用rclone将文件上传到OneDrive中。rclone将会被自动安装,完成后会触发rclone config配置你的OneDrive。
r1.png
输入n新建一个远程网盘,随后会要求你输入一个name,随意即可,比如MyOneDrive
r2.png
选择输入OneDrive前面的数字,如图中为23。随后有client_idclient_secretEdit advanced config这三个问题,全部回车默认即可。注意 Use auto config这一项,务必选择N。去rclone官网下载(https://rclone.org/downloads/)你现在正在用的桌面系统对应的版本,比如我使用Windows系统,则下载rclone-v1.51.0-windows-amd64.zip并将其解压,使用powershell进入对应的文件夹,输入./rclone.exe authorize "onedrive",浏览器会弹出OneDrive的绑定界面,完成操作后,powershell会弹出一个token(类似于{"access_token":"xxxx"} ),将其完整复制到服务器/VPS中即可绑定。不会绑定token的,请百度/Google/bing一下。在随后的please input remote drive name again中,再次填入你刚才设置的OneDrive的名字,比如前面的MyOneDrive
7 网站的ssl由let's encrypt提供,并自动完成,请按照提示输入必要的信息,比如邮箱等。
8 安装完成后推荐重启服务器,以便各服务都能正常运行。

系统无法运行时的简单自检

因为每个人的操作和环境都可能存在区别,所以即使一样的系统,一样的脚本,然后可能会出现安装完后无法使用的现象。目前反映的主要集中在nginx不正常运行/无法启动,aria2无响应,rclone配置出现问题。
1 nginx不正常运行/无法启动
输入systemctl status nginx,如果出现nginx Failed to read PID from file /run/nginx.pid: Invalid argument,可以使用以下方法来解决:

mkdir -p /etc/systemd/system/nginx.service.d 
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf 
systemctl daemon-reload 
systemctl restart nginx.service

2 aria2无响应,AriaNG一直在连接
如果AriaNG一直在连接,先检查是不是没有输入密码或者密码错误。如果其他地方没有问题,输入systemctl status nginx检查aria2是否正常启动。在极其偶然的情况下,确实会出现aria2无法启动。一般重装就会好。

3 rclone不上传文件
aria2在下载完文件的时候,会触发autouplad.sh自动上传文件到OneDrive,这几天碰到过一次rclone config因为没有配置,导致表现上看起来是aria2没有正常工作的bug。自检方法为输入rclone config查看是否有之前挂载的OneDrive网盘。如果提示没有任何配置文件,就说明得手动挂载。具体操作请查看前面的rclone章节。

问题反馈

不可能有问题,就算有问题,也一定是你的问题。

  • 已知有些vps的nginx会无法启动,反正遇见过一次,很神奇。
  • 由于rclone的上传机制有点复杂,导致有时候明明已经全部上传了,还会存留着一份在/home/download/文件夹中,可以自行删除它,也可以手动注释aria2.conf最后一行的自动上传,完全避免这个问题(毕竟都不上传了,问题当然不会存在)。
  • 服务器/VPS的配置需要稍微好一点,aria2多线程下载的时候需要较强的CPU,rclone上传大文件的时候,需要512M以上内存,硬盘太小可能会导致下载失败。

标签: linux, onedrive, shell

已有 23 条评论

  1. 11 11

    博主 我的aria2显示未连接 地址也设置好了

    1. 使用ssl/https,记得填密码,用纯净系统安装还不行的话,大概率是系统bug

    2. heihaing heihaing

      你要去AriaNG设置里,上面有个全局和RPC,点RPC,把你安装时候配置的密码填上去,再刷新就好了

  2. 喵喵 喵喵

    Debian 9
    set up bbr
    sysctl: setting key "net.core.default_qdisc": No such file or directory
    net.core.default_qdisc = fq
    sysctl: setting key "net.ipv4.tcp_congestion_control": No such file or directory
    net.ipv4.tcp_congestion_control = bbr
    sysctl: setting key "net.core.default_qdisc": No such file or directory
    net.core.default_qdisc = fq
    sysctl: setting key "net.ipv4.tcp_congestion_control": No such file or directory
    net.ipv4.tcp_congestion_control = bbr
    sysctl: setting key "net.core.default_qdisc": No such file or directory
    net.core.default_qdisc = fq
    sysctl: setting key "net.ipv4.tcp_congestion_control": No such file or directory
    net.ipv4.tcp_congestion_control = bbr
    There is something wrong with bbr
    please check your system
    ***EXIT***

    安装出错。。我已经安装了BBR 请问这个是怎么回事。

    1. 使用纯净的debian 9系统进行安装,不要更改系统本身的任何东西,尤其是手动开bbr和http类服务。

  3. andy andy

    装到一半putty断网了怎么办

    1. 那就只能重新来了

  4. andy andy

    还有 rclone 获取不到token

    1. 仔细看教程,一步一步就可以了

  5. dante dante

    donwa的oneindex删库了,能否修复一下

    1. 等过一段时间有空了,我把oneindex集成进去。

      1. donwa的oneindex删库了,能否修复一下,大佬抽时间出来更新下啊!!

        1. 已经更新了oneindex的库了

  6. chichi chichi

    debian10可以吗

  7. ccc ccc

    您好,我咨询一下,我搭建完事后页面一直在加载中,Aria2状态一直都是连接中。我这个是不是失败了

    1. 输入systemctl status aria2看一下aria2是否正常启动

  8. fan fan

    已经安装成功,oneindex也安装好了,那么aria2ng怎么打开啊,也没显示哪个端口。。

    1. 假设你的域名是example.com,那么aria2ng的网址就是https://example.com/AriaNG

  9. 你好,ssl 证书在那个文件中,我查了半小时也没有找到

    1. 在/etc/letsencrypt/live/xxx/中,其中xxx是你的域名,rpc-certificate是fullchain.pem,rpc-private-key是privkey.pem

  10. 闻香 闻香

    一切都正常,但下载后不上上传onedrive,home download也没有。

    1. 手动使用rclone试一下能不能上传,这种情况一般是rclone没有配置好或者/home目录的autoupload.sh没有给执行权限。

  11. 大神好 大神好

    建议集成萌卡的自动上传onedrive脚本。个人认为比rclone要简便

添加新评论