ocDownloader 配置Nextcloud离线下载功能

Posted by 橙叶 on Sun, Sep 17, 2017

一直以来Nextcloud/ownCloud的离线下载都是大家所期盼的功能,而ocDownloader插件原项目已有两年未更新。现在ocDownloader在Github已由维护。作者给出的教程略坑,那么下面我们来看看如何使用这个插件(App)

介绍

ocDownloader是一个基于AGPL协议的Nextcloud插件(应用),允许用户使用Aria2/Curl/youtube从HTTP(S)/FTP(S)/Youtube/Bittorrent等协议离线下载文件。

使用教程

安装ocDownloader插件

到GitHub或Nextcloud Apps下载ocDownloader插件:

[ssbluelist]

[/ssbluelist]

将下载到的安装包解压并上传到Nextcloud程序的apps目录:

注意权限的设置:

sudo chown www-data ocdownloader -Rf

进入Nextcloud,在应用页面启用插件:

启用完成后就可以从顶部工具栏进入ocDownloader面板,不过现在尚不能使用:

安装Aria2

ocDownloader需要使用Aria2以在后台下载文件。Aria2是一个轻量级Linux下载软件,支持HTTP/HTTPS, FTP, SFTP, BitTorrent和磁力链接。

预警:Aria2的安装和配置是最坑的地方,所以请保持耐心。

安装Aria2:

apt-get install aria2 curl php-curl

以HTTP服务器用户(以www-data为例)启动Aria2:

sudo -u www-data aria2c --enable-rpc --rpc-allow-origin-all -c -D --log=/var/log/aria2.log --check-certificate=false --save-session=/var/www/aria2c.sess --save-session-interval=2 --continue=true --input-file=/var/www/aria2c.sess --rpc-save-upload-metadata=true --force-save=true --log-level=warn

执行完之后似乎什么都没有发生,别怨我,上面那个命令是插件作者提供的。

我自己探索的解决方法如下:

1.创建一个空的aria2配置文件,配置文件的路径任意

vim aria2.conf

2.将下面的配置内容粘贴进去(配置文件来自:/BaiduExporter),其中的文件保存目录需要自己配置。

#用户名
#rpc-user=user
#密码
#rpc-passwd=passwd
#设置加密的密钥
#rpc-secret=secret
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#是否启用https加密,启用之后要设置公钥,私钥的文件路径
#rpc-secure=true
#启用加密设置公钥
#rpc-certificate=/home/name/.config/aria2/example.crt
#启用加密设置私钥
#rpc-private-key=/home/name/.config/aria2/example.key
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
#文件保存路径, 默认为当前启动位置
dir=/aria2downloads
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
#不进行证书校验
check-certificate=false

保存退出

3.启动aria2,在命令中指明刚创建的配置文件的位置:

aria2c --conf-path /root/aria2.conf

这样,Aria2 rpc就在6800端口上运行了。

Aria2官方就已经提供了一个Web页面上的下载工具,叫 Aria2 WebUI ,其实相比ocDowloader来说我更推荐使用Aria2 WebUI ,因为可以设置token以防止未授权访问,而且不需要php之类的环境。

好了废话不多说我们继续。

现在再次进入ocDownloader,提交一个下载任务:

稍后下载完成,可以在Nextcloud里直接查看

使用cURL代替aria2

如果你的Aria2实在不能正常运行,可以使用cURL作为替代品,只是不能进行BT下载。

进入Nextcloud->管理->其它设置,将ARIA2改为CURL

安装Youtube-dl

除了HTTP、FTP、BT等等,ocDownloader还可以下载Youtube视频,不过需要youtube-dl的支持

安装youtube-dl:

sudo apt-get install python-pip
sudo pip install --upgrade youtube_dl

更多安装方法可以到youtube-dl官网查看。

在ocDownloader中点击YOUTUBE,填写YouTube的视频链接,点击“启动YouTube下载”:

 

(因为刚开始没考虑到这个功能,所以演示环境放在局域网里,没法在往下进行了,有机会再补上)



comments powered by Disqus