为Nextcloud添加离线下载功能

 提示:转载请注明原文链接

 本文链接:https://360us.net/article/56.html

首先有一个完全不需要配置的现成方案,直接用docker run运行就可以使用了,项目地址:https://github.com/jae-jae/docker-pan

这个方案利用的是Aria2web ui来实现下载管理,Filerun来实现文件的管理的,下载后端是Aria2这个开源的下载软件。

本篇文章要讲的是在NextCloud里面添加离线下载的功能,就类似于百度网盘的离线下载一样的。

我的nextcloud是用docker运行的,不用docker运行的话也是类似的。

首先是在nextcloud的管理后台安装应用ocdownloader

作者的github项目主页是:https://github.com/e-alfred/ocdownloader

这个应用的下载后端可以是curlAria2,这里不管curl,只用Aria2做下载后端,因为curl支持httpftp下载,没有bt下载的功能。

新增Aria2配置(aria2.conf):

daemon=true
listen-port=6887 #这个和下面这个端口配置可以不要,会自动随机一个端口
dht-listen-port=6885
seed-ratio=1.0 #这个是分享率设置
max-overall-upload-limit=2M #全局最大上传速度
max-upload-limit=512K #单个任务最大上传速度
max-download-limit=8M #单个任务最大下载速度
enable-rpc=true #这个一定要
rpc-allow-origin-all=true
rpc-save-upload-metadata=true
log=/var/aria2/aria2.log
check-certificate=false
#save-session和input-file是一定要的,否则如果重启了aria2,没下载完的任务就没了
save-session=/var/aria2/aria2c.sess
save-session-interval=10
input-file=/var/aria2/aria2c.sess
continue=true
log-level=warn
dht-file-path=/var/aria2/dht.dat
dht-file-path6=/var/aria2/dht6.dat

这里只是aria2的部分常用配置,可以按照自己的需求根据文档自由增减。

Dokcerfile文件内容:

#基于nextcloud官方最新版镜像构建
FROM nextcloud:latest

#https://github.com/e-alfred/ocdownloader
RUN apt-get update; \
    apt-get install -y aria2 sudo curl python; \
    rm -rf /var/lib/apt/lists/*;

#youtube-dl是用来下载youtube视频的
#install youtube-dl
#link: https://github.com/rg3/youtube-dl
RUN curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
RUN chmod a+rx /usr/local/bin/youtube-dl


ADD ./run.sh /var/www
RUN chmod +x /var/www/run.sh

RUN mkdir /var/aria2; \
    #这个文件一定要先手动创建,否则Aria2就运行不起来了
     #这是我测试了好多遍测试出来的问题,因为按照作者项目里面的运行命令运行是没有任何反应的,不会报错,Aria2也没运行起来。
    touch /var/aria2/aria2c.sess; \
    chown -R www-data:root /var/aria2

RUN mkdir /etc/aria2
ADD ./aria2.conf /etc/aria2


#这个可以不要
EXPOSE 6800

CMD ["/bin/bash", "-c", "/var/www/run.sh"]

run.sh,这个是dockerCMD指令的启动文件:

#!/bin/bash

#nextcloud的运行用户是www-data,所以aria2也是以这个用户来运行
sudo -u www-data aria2c -D --conf-path=/etc/aria2/aria2.conf

apache2-foreground

docker-compose.yml文件内:


version: '3'

services:
    nextcloud:
        image: nextcloud:local
        build: .
        container_name: nextcloud
         #这个端口映射可以不要,开不开放对下载没影响
        ports:
            - "6885:6885/udp"
            - "6887:6887" 
        volumes:
            - ./www:/var/www/html
            - ./data:/var/www/data

把上述所有文件放在一个文件夹里面,这里取名为nextcloud

最后在nextcloud目录里面执行命令:sudo docker-compose up -d

如果要重新构建容器,用以测试,可以先执行:sudo docker-compose down --rmi all命令,先删除容器,--rmi参数是会删除对应的镜像,然后再执行上面运行容器的命令。

正常的话到这里就安装插件结束了,然后可以使用NextCloud来做离线下载了。

还有一点提示,如果你需要使用youtube-dl来下载YouTube的视频的话,需要到NextCloud管理后台设置一下可执行文件路径。

设置位置是管理 其他设置 ocdownloader YouTUbe DL二进制文件路径,本文的路径是/usr/local/bin/youtube-dl

最后放一张效果图:

效果图

使用起来感受是,下载国内的BT种子没什么速度,估计是迅雷用的多,迅雷又不会给其他下载软件上传资源,国外的一些资源速度到挺快的。


本文链接:https://360us.net/article/56.html