有一个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 安装完成后推荐重启服务器,以便各服务都能正常运行。

问题反馈

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

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

标签: linux, onedrive, shell

已有 12 条评论

  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集成进去。

  6. chichi chichi

    debian10可以吗

添加新评论