为Nextcloud添加离线下载功能

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

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

有一个完全不需要配置,直接用docker run就可以使用的方案:https://github.com/jae-jae/docker-pan

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


我们现在要讲的是在nextcloud里面添加离线下载的功能,就类似于百度网盘的离线下载一样的。


怎么安装nextcloud就不讲了,只写怎么配置这个离线下载的功能。

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


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

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

这个应用的下载后端可以是curl和Aria2,这里不管curl,只用Aria2做下载后端,因为curl支持http和ftp下载,没有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:

#!/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参数是会删除对应的镜像,然后再执行上面运行容器的命令。

正常的话应该就可以正常使用来下载了。


还有一点,如果你需要使用youtube-dl来下载YouTube的视频的话,youtube-dl这个工具的可执行文件目录需要设置到ocdownloader后台设置里面,上面Dockerfile里面的路径是默认的。


本来是要上传图片的,发现上传图片的功能有问题,就先纯文字吧。

 评论
昵称
邮箱
网址
最多500个字符