lala.im:NextCloud安装ocDownloader插件实现离线下载功能

運維技術·lala.im · 2017-09-14 · 162 人浏览

原文地址:https://lala.im/1140.html,請支持原作者!該處僅作轉載。

此方法同样适用于OwnCloud,毕竟NextCloud和它都是一个亲妈生的,不过LALA个人还是建议使用NextCloud。如果你还不知道该如何搭建NextCloud可以参考下面这篇文章:
最简单的方法安装NextCloud私人网盘程序

在这里也给之前这篇文章做一点小更新,建议大家在使用宝塔面板安装NextCloud的时候选择LAMP环境,注意是LAMP环境!我之前这篇文章中写的是LNMP环境,实测LNMP跑NextCloud会有一些问题,这里长话短说,LAMP环境是可以完美运行NextCloud的。
另外LALA之前也写过很多这类自建网盘的教程,如果你对这方面非常感兴趣,可以浏览一下其他方案:
Aria2整合FileRun自建离线下载网盘
Aria2整合KODExplorer实现自建离线下载网盘
开源的私有云网盘程序Seafile安装教程
国外网盘程序YetiShare详细安装教程
那么进入今天的正题咯~
首先登录你的NextCloud后台,点击应用,打开应用列表,点击Tools,启用ocDownloader插件:

範例
现在我们回到网盘首页,就可以看到上方导航栏多出了一个下载图标,点击它即可进入到ocDownloader的界面:

範例
不要着急,现在这个插件是无法使用的,因为这个插件是基于Aria2和CURL的,当然CURL我们用宝塔装的环境默认就支持,但是CURL无法下载BT类型的文件,所以这里我们需要给服务器安装Aria2。
使用Xshell登录你的机器,输入如下命令安装Aria2:

wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/rhscl-devtoolset-3-epel-6.repo
yum install devtoolset-3-gcc devtoolset-3-gcc-c++ devtoolset-3-binutils devtoolset-3-gcc-gfortran
scl enable devtoolset-3 bash
gcc --version
wget https://github.com/aria2/aria2/releases/download/release-1.32.0/aria2-1.32.0.tar.gz
tar xzvf aria2-1.32.0.tar.gz
cd aria2-1.32.0
./configure
make
make install

如果你的gcc编译器版本号够高,可以省略前三步,直接wget下载aria2然后编译即可。
aria2安装完成后,我们需要查看一下当前NextCloud是运行在哪个用户下的,因为我们需要确保运行aria2的用户和NextCloud是同一个,不然无法正常使用插件,所以输入如下命令查看当前机器的所有用户:

cat /etc/passwd

如图可以看到我搭建的NextCloud是用www用户运行的:

範例
LALA在这里也稍微提一下,如果你是按照我之前文章写的那样,使用宝塔面板安装的NextCloud,那么你的NextCloud同样也是使用www用户运行的。如果不是用的宝塔,那么你就需要自己查找了。
由于我们编译安装的aria2是默认安装到了/usr/local/bin,而我们运行aria2需要用到sudo,但sudo默认没有将/usr/local/bin目录下的命令包括进去,所以接着我们需要编辑sudoers文件:

vi /etc/sudoers

找到如图中的这部分:

範例
将:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

修改为:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

退出vi并保存,这里因为sudoers是一个只读文件,可能在退出vi的时候会弹警告提示,我们强行退出使用如下命令:

:wq!

现在就可以使用sudo以www的用户来运行aria2了:

sudo -u www aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all -c --dir /root/downloads -D

这个命令行启动默认我们选择了文件的下载保存路径是/root/downloads,但实际上这个路径是不生效的,它的目的仅仅只是用于让aria2能够成功启动。我们稍后可以在ocDownloader插件中来设置文件保存路径。
那么我们现在回到NextCloud的ocDownloader插件界面中就可以来尝试添加一些下载任务,看看是否能够正常使用。
添加BT种子文件下载:

範例
选择你刚上传的BT种子,点击启动BT下载,即可开始下载:

範例
添加HTTP下载:

範例
在页面的下方,或者点击正在下载栏目,都可以看到当前下载任务的具体情况:

範例
下载完成后的文件会保存到你网盘中的Downloads目录下:

範例
另外我们之前说过,你可以自定义文件的下载保存路径,点击你的个人信息,在下方就可以看到如图界面,输入你想要保存的路径即可:

範例
当然在后台管理界面点击其他设置,可以更加详细的来设置ocDownloader插件的功能:

範例
至此,ocDownloader插件的安装与使用大家就应该很明白了,教程也差不多到这里就结束了~
LALA的后话:
有几个需要额外补充的点,我在这里稍微说一下。
1、ocDownloader还支持下载Youtube的视频,但是还需要额外安装youtube-dl这款软件,但这个东西今天LALA并没有说明,当然也不在本文的讨论范围内,因为我个人是没有下载Youtube视频这个需求的,所以我也懒得配置。
2、如果你是一个长期使用NextCloud的用户,会发现这款程序其实使用起来真的不是很方便,最让人头疼的事情就是同步经常出错,文件经常被莫名其妙的锁定,并且还不能自动解锁,并且程序也没有解锁文件的功能。那么一旦你的文件被锁定你就无法对这个锁定的文件进行任何操作,一般我们在看后台log的时候可以看到如下报错:

範例
LALA的解决办法是进入到数据库中,清空oc_file_locks这个数据表:

範例
对于这个文件锁定的问题,官方的答复是,文件被锁定一般是由于这个文件正在进行操作(写入)等到文件写入完成,程序会自动解锁。但LALA用了这么久的NextCloud,想说官方的这个答复就是在放屁,至于你们信谁,我管不着,用过就知道了。。。
3、LALA个人建议不要频繁的去更新NextCloud,就算NextCloud发布了更新,只要不是涉及到严重安全漏洞的,我建议大家都不要去手贱更新,因为这款程序,我个人觉得设计的非常臃肿,更新这块的功能做的也很蛋疼,一旦更新出问题,可能就很难恢复原样了,再者这是一款网盘程序,资料比什么都贵重,稳定运行才是真!

運維技術 網盤 lala.im
Theme Jasmine by Kent Liao