Rat's

使用Aria2+Aria2Ng+OneIndex+OneDrive建立不限流量/离线BT下载/在线观看网盘
说明:这个教程之前发过一个脚本:Aria2+Aria2Ng+OneIndex一键安装脚本,下载后自动上传至OneD...
扫描右侧二维码阅读全文
16
2018/08

使用Aria2+Aria2Ng+OneIndex+OneDrive建立不限流量/离线BT下载/在线观看网盘

说明:这个教程之前发过一个脚本:Aria2+Aria2Ng+OneIndex一键安装脚本,下载后自动上传至OneDrive,不过由于系统支持较少,加上很多人想手动安装,这里就单独拿来水一篇文章。

获取OneDrive

现在OneIndex是可以使用个人的OneDrive网盘,不过容量太小,很难满足一些人的需求,这里提一下之前说过的2个申请OneDrive 5T的方法。

1、申请微软的Office 365开发者计划,地址:免费获得一年的21TB OneDrive和Microsoft Office 365企业
2、使用热心大佬提供的临时邮箱申请一个,方法如下:

1)、进入注册地址https://products.office.com/en-us/student?tab=students
2)、输入如有乐享提供的临时邮箱,地址:https://51.ruyo.net/8263.html
3)、填入密码,和从临时邮箱获取的验证码

安装

1、安装宝塔

#Centos系统
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh

安装完成后,进入面板安装PHP 5.6+Nginx

2、安装OneIndex
先添加域名,然后上传程序文件到网站根目录/www/wwwroot/xx.com,将文件解压出来,并设置config/cache/可读写权限,程序下载:OneIndex.zip

也可以使用命令上传到根目录:

#Debian/Ubuntu系统
apt-get install git -y
#CentOS系统
yum install git -y

#修改为自己域名根目录后再运行
cd /www/wwwroot/xx.com
git clone https://github.com/donwa/oneindex.git
mv oneindex/* ./
chmod 777 ./config && chmod 777 ./cache

再点击域名设置,添加Nginx伪静态:

location / {
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/(.*)$ /index.php?/$1 last;
}
}

最后打开域名进行安装和绑定OneDrive了,后台地址:https://xx.com/?/admin,默认密码:oneindex。如果你想给域名加上https安全访问,可以通过域名设置配置一下SSL证书。

3、安装Aria2
这里用的逗比的脚本,使用命令:

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Aria2/aria2.sh && chmod +x aria2.sh && bash aria2.sh

安装完成后,如果我们想修改密码、下载文件位置、端口的话,可以使用命令bash aria2.sh,再选择修改配置即可,这里建议使用该脚本配置自动更新BT-Tracker服务器,对下载BT有加成。

4、安装AriaNg
这一步和安装OneIndex差不多,先添加一个域名,不想用域名的可以在添加域名那里填上IP或者IP:端口,然后将AriaNg程序上传到对应的根目录,可以使用命令:

#这里以添加IP为例
#Debian/Ubuntu系统
apt-get install unzip -y
#CentOS系统
yum install unzip -y

cd /www/wwwroot/11.22.33.44
wget https://www.moerats.com/usr/down/aria-ng-0.2.0.zip && unzip aria-ng-0.2.0.zip

这时候我们就可以使用IP访问AriaNg界面了,或者IP:端口,这取决于你添加域名的时候填的什么了。

配置Aria2上传

这里说下3种自动上传的方法,第1种使用OneIndex程序自带的上传,第2种使用Rclone挂载后自动上传,第3种使用上传脚本,由于前2种上传有BUG,建议使用第3种脚本上传,对于不想折腾的人来说,也可以直接使用第1种方法。

1、OneIndex上传
先在/root/.aria2文件夹新建一个上传脚本,命名oneindexup.sh

#这里也可以使用vi命令,自己看着办
nano /root/.aria2/oneindexup.sh

将以下代码修改后,复制进脚本:

#!/bin/bash
path=$3 #取原始路径,我的环境下如果是单文件则为/data/demo.png,如果是文件夹则该值为文件夹内某个文件比如/data/a/b/c/d.jpg
downloadpath='/usr/local/caddy/www/aria2/Download'  #修改成Aria2下载文件夹
domain='moerats.com'  #修改成自己域名

if [ $2 -eq 0 ]
        then
                exit 0
fi
while true; do  #提取下载文件根路径,如把/data/a/b/c/d.jpg变成/data/a
filepath=$path
path=${path%/*}; 
if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ]  #如果下载的是单个文件
    then
    php /www/wwwroot/$domain/one.php upload:file $filepath /$folder/
    rm -rf $filepath
    php /www/wwwroot/$domain/one.php cache:refresh
    exit 0
elif [ "$path" = "$downloadpath" ]
    then
    php /www/wwwroot/$domain/one.php upload:folder $filepath /$folder/
    rm -rf "$filepath/"
    php /www/wwwroot/$domain/one.php cache:refresh
    exit 0
fi
done

然后再授权:

chmod +x /root/.aria2/oneindexup.sh

最后在配置文件aria2.conf里加上一行on-download-complete=/root/.aria2/oneindexup.sh,可以直接使用命令:

echo "on-download-complete=/root/.aria2/oneindexup.sh" >>/root/.aria2/aria2.conf
#重启Aria2
service aria2 restart

2、Rclone挂载上传
我们先使用挂载Rclone挂载OneDrive,挂载方法查看:在Debian/Ubuntu上使用rclone挂载OneDrive网盘,然后步骤就和上面的OneIndex上传方法一样了,就是上传脚本不一样,上传脚本如下:

#!/bin/bash
path=$3 #取原始路径,我的环境下如果是单文件则为/data/demo.png,如果是文件夹则该值为文件夹内某个文件比如/data/a/b/c/d.jpg
downloadpath='/root/Download'  #Aria2下载文件目录
name='RATS'  #配置Rclone时的name
folder='VPS'  #网盘里的文件夹

if [ $2 -eq 0 ]
        then
                exit 0
fi
while true; do  #提取下载文件根路径,如把/data/a/b/c/d.jpg变成/data/a
filepath=$path
path=${path%/*}; 
if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ]  #如果下载的是单个文件
    then
    rclone move "$filepath" ${name}:${folder}/     
    exit 0
elif [ "$path" = "$downloadpath" ]   #文件夹
    then
    while [[ "`ls -A "$filepath/"`" != "" ]]; do
    rclone move "$filepath"/ ${name}:${folder}/"${filepath##*/}"/ --delete-empty-src-dirs
    done
    rm -rf "$filepath/"
    exit 0
fi
done

3、使用上传脚本
方法参考:VPS上传文件到OneDrive网盘脚本,可配合Aria2实现自动上传

关于更多OneIndex的使用方法请查看:OneIndex一键安装脚本 for Debian

需要Office365 E3 MSDN 25的可加入萌咖杂货店QQ群购买→【点击加入
最后修改:2018 年 09 月 04 日 10 : 35 AM

发表评论

62 条评论

  1. 9527

    博主,都安装好了,上传不是很理想,这么安装第3种脚本上传,https://www.moerats.com/archives/697/
    哪里的Aria2自动上传脚本要复制到哪个文件里
    是覆盖oneindexup.sh 还是再新建个rcloneupload.sh

    1. Rat's
      @9527

      那个需要先安装那个文章里的onedrive上传脚本,然后配置好,接下来步骤就和本文章上传1步骤一样,只是代码需要复制那个文章里的Aria2上传代码。

      1. 9527
        @Rat's

        是复制在oneindexup.sh文件里吗,
        https://www.moerats.com/archives/697/
        Aria2的上传脚本没有修改域名这一行,是不是不需要了
        domain='moerats.com' #修改成自己域名

        1. Rat's
          @9527

          不需要域名,因为上传方式不一样。

          1. 9527
            @Rat's

            感觉我的安装步骤有问题,先安装网址697 那里的,再从这里宝塔开始安装吗,那么这里的第二步安装oneindx还需要安装吗

            1. Rat's
              @9527

              不需要重新安装,只要重新配置上传步骤就行了,要不你把这个文章配置上传步骤全部删掉,就当没配置过上传,然后再用那个文章重新配置来。

              1. 9527
                @Rat's

                很懵啊,是不是安装到 配置Aria2上传 这一步后再去安装网址697 里的,博主有没有新教程啊

                1. Rat's
                  @9527

                  那你重新来好了,这种教程是没有新不新的,只看程序安装方式变不变而已。

  2. jvc2020

    大佬 大佬,按照步骤后,域名链接oneindex,ip连接aria2ng,两个分开都能用,但aria2ng下载的文件不会自动上传,不知道哪里错了

    1. Rat's
      @jvc2020

      用的哪个上传脚本?步骤填对后,需要授权,然后重启下aria2.

      1. jvc2020
        @Rat's !/bin/bash

        path=$3 #取原始路径,我的环境下如果是单文件则为/data/demo.png,如果是文件夹则该值为文件夹内某个文件比如/data/a/b/c/d.jpg
        downloadpath='/usr/local/caddy/www/aria2/Download' #修改成Aria2下载文件夹
        domain='lingyin.ga/' #修改成自己域名

        if [ $2 -eq 0 ]

        then exit 0

        fi
        while true; do #提取下载文件根路径,如把/data/a/b/c/d.jpg变成/data/a
        filepath=$path
        path=${path%/*};
        if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ] #如果下载的是单个文件

        then php /www/wwwroot/$domain/one.php upload:file $filepath /$folder/ rm -rf $filepath php /www/wwwroot/$domain/one.php cache:refresh exit 0

        elif [ "$path" = "$downloadpath" ]

        then php /www/wwwroot/$domain/one.php upload:folder $filepath /$folder/ rm -rf "$filepath/" php /www/wwwroot/$domain/one.php cache:refresh exit 0

        fi
        done

        就是这样的 复制后授权

        1. jvc2020
          @jvc2020

          这行多复制了/ domain='lingyin.ga' #修改成自己域名

          1. Rat's
            @jvc2020

            你下载路径填对了么?上传脚本授权了么?Aria2重启了么?都检查一遍。

            1. jvc2020
              @Rat's

              脚本上的和Aria2Ng上的路径都是这个 /usr/local/caddy/www/aria2/Download,然后再点的chmod +x /root/.aria2/oneindexup.sh,然后添加on-download-complete=/root/.aria2/oneindexup.sh这段重启的,顺序没错吧

              1. Rat's
                @jvc2020

                按理说没错,你看下aria2日志吧。

                1. jvc2020
                  @Rat's

                  11/13 11:50:48 [NOTICE] Removed the defunct control file /usr/local/caddy/www/aria2/Download/811686.jpg.aria2 because the download file /usr/local/caddy/www/aria2/Download/811686.jpg doesn't exist.

                  11/13 11:50:48 [NOTICE] Download complete: /usr/local/caddy/www/aria2/Download/811686.jpg
                  /root/.aria2/oneindexup.sh: line 1: #!/bin/bash: No such file or directory
                  本地文件:/usr/local/caddy/www/aria2/Download/811686.jpg
                  远程文件:811686.jpg
                  上传方式:直接上传
                  上传失败!

                  日志上面上传失败的多,勉强几个上传成功了
                  博主 还有一个问题 现在点击文件连接为什么会跳转到404
                  地址 http://lingyin.ga/

                  1. jvc2020
                    @jvc2020

                    去掉伪静态前一段和后一段好了

  3. 八秒

    Aria2离线下载后服务器CPU会彪到一百,查看了下是一个sh的进程,请问正常吗?而且是下载完之后还在运行,除非手动把他结束掉

    1. Rat's
      @八秒

      正常,毕竟好多人遇到过。

  4. 小小

    问题来了,Aria2自动上传OneIndex后视频名字的前段没有,比如888.MP4,上传到OneIndex变成 .MP4

    1. Rat's
      @小小

      用的作者指定的那个上传命令好像会有这种情况。

  5. xxxkkk

    请问我安装的时候绑定账号以后提示
    系统安装 完成安装
    程序安装失败!
    这是什么情况
    是要修改什么吗
    还是因为我只装了NGINX和php

    1. xxxkkk
      @xxxkkk

      我用的是E3开发者订阅,

      1. xxxkkk
        @xxxkkk

        是用命令行方式安装的。。

        1. Rat's
          @xxxkkk

          安装界面提示条件都是√吗?还有再绑定一次试试。

  6. 莫道

    博主 种子文件下载完成之后一直在做种 还是在正在下载那一栏里面 这样没法上传啊 怎么设置不做种啊

    1. Rat's
      @莫道

      停止做种好像需要加一个参数--seed-time=0

      1. hbin
        @Rat's

        这个代码加在哪里?能详细说一下吗

        1. Rat's
          @hbin

          加到配置文件,不过在AriaNg里的BT设置里也可以直接找到进行设置

  7. 蓝色文字

    博主,想问一下,按照博主的第一种上传方式有点问题:带空格的命名文件,好像都上传不了,博主什么时候可以修复一下吧。因为自己用的是教育版的 onedrive 所以用不了第三个脚本,不知道博主有没有什么方法让教育版同样使用一个好的上传脚本。。。

    1. Rat's
      @蓝色文字

      第一个是使用程序命令方式上传,这个与源码有关,只能等作者修复,教育版可以用第三个脚本的。

      1. 蓝色文字
        @Rat's

        非常感谢博主教程,我已经用上了第三个脚本,十分感谢!!!

  8. hello

    你好,请问点击绑定账号的时候,出现如下问题是什么情况?
    错误如下:
    AADSTS90014: The request body must contain the following parameter: 'client_id'.

    1. Rat's
      @hello

      绑定时2个参数信息填对了没?多绑定几次试试。

  9. Tiger

    博主,你好。现在我都弄好了,不过我没有搭宝塔,装Nginx,我用的是caddy,那这个caddy的伪静态应该怎么写啊?

    1. Rat's
      @Tiger

      Caddy伪静态好像没人研究,我给个你试试:
      rewrite {
      to {path} {path}/ /index.php/{path}}

  10. whiteeyes

    wget https://www.moerats.com/usr/down/aria-ng-0.2.0.zip && unzip aria-ng-0.2.0.zip

    --2018-09-25 15:55:41-- https://www.moerats.com/usr/down/aria-ng-0.2.0.zip
    Resolving www.moerats.com (www.moerats.com)... 66.11.117.219
    Connecting to www.moerats.com (www.moerats.com)|66.11.117.219|:443... connected.
    HTTP request sent, awaiting response... 404 Not Found
    2018-09-25 15:55:41 ERROR 404: Not Found.

    1. Rat's
      @whiteeyes

      文件已修复。

      1. whiteeyes
  11. Tiger

    我是小白,请教几个问题

    OneDrive已经申请好了,申请时domain填的是“plexhome" 在office365的OneDrive界面显示的是OneDrive@plexhome, 按照你的教程,宝塔装完后(我用的是AWS的免费的EC2,ubuntu 16) "先添加域名",这个域名是随便起还是要用 OneDrive的域名:plexhome

    "最后打开域名进行安装和绑定OneDrive了,后台地址:https://xx.com/?/admin"

    这步没有看懂,我因为自己随便起了个域名,在宝塔的面板里如何绑定OneDrive啊,不知道如何操作
    1. Rat's
      @Tiger

      域名不能随便起,自己去注册个域名。

  12. 小雪

    博主 我从aria2下载了东西 超级快 30M/s 但是 文件既没有在服务器上 也没有在oneindex中 我找不到了
    您能告诉我在那么

    1. Rat's
      @小雪

      你是用的第几种上传方式?看下onedrive网盘有不有。

      1. 小雪
        @Rat's

        第一种呢 网盘没有 还有就是想问一下 我要把本地文件上传的话是不是只能在OneDrive上传呢 哪里好慢啊

  13. 小雪

    博主 你好 小白 NGINX哪里添加伪静态 选择那一条啊 PHP必须是5.6吗?

    1. Rat's
      @小雪

      最低5.6,可以更高版本,点击你添加的网站,就可以看到设置了,找到伪静态。

      1. 小雪
        @Rat's

        谢谢博主 博主 aria2认证失败怎么弄

        1. 小雪
          @小雪

          嗷嗷 搜到了 没有输入密码
          谢谢博主

  14. 小志

    给我提示
    抱歉,登录时遇到问题。

    AADSTS70001: Application with identifier 'admin' was not found in the directory 5252oooooooo.onmicrosoft.com
    什么情况啊

    1. Rat's
      @小志

      信息都填对了么?多登几次看看。

  15. MikuProfessor

    两个疑惑 麻烦解答一下,谢谢大佬
    1.服务器下载速度很不理想,vultr10美刀的服务器在磁力站找电影大概峰值只有1M的速度,有时会掉到10K,是服务器选择的问题么?还是资源的问题。
    2.BBR或者锐速会影响这个的下载速度么

    1. Rat's
      @MikuProfessor

      主要应该是资源问题,BBR和锐速的话会有加成,但总体还是看资源。

      1. MikuProfessor
        @Rat's

        谢谢,我发现vultr好像会对挂bt的服务器限速。换一家服务器做下载,有什么推荐么

        1. Rat's
          @MikuProfessor

          应该不会有限制,我有时候用vulr下载bt,最高有30M/S,你可以试试我博客推的cloudcone,带宽挺足的。

  16. tanx

    OneIndex上传 是这段代码不能上传中文文件还是 oneindex不能支持额,我这边单文件的话直接就去掉文件名上传了,文件夹的话就直接删掉了 尴尬

    1. Rat's
      @tanx

      这个上传有的中文是可以上传的,有的上传后直接改名了,你可以试试我说的第三种上传方法,很稳。

  17. 君柯

    楼主写教程都不写清楚。PHP要5.6宝塔默认是5.4.一装就报错了

    1. Rat's
      @君柯

      这里就没注意到了,已更正。

  18. vincent

    小白想问有没有一键安装for centos 的啊

    1. Rat's
      @vincent

      没有,个人只喜欢Debian系统。

  19. blackmoonth

    好像都是需要先下载本地在由本地上传到oneDrive

    1. Rat's
      @blackmoonth

      对的,直接把onedrive当下载盘的话会出很多问题。