Nextcloud

ocDownloader 配置Nextcloud离线下载功能

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

介绍

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

使用教程

安装ocDownloader插件

到GitHub或Nextcloud Apps下载ocDownloader插件:

将下载到的安装包解压并上传到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下载”:

 

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

(7)

本文由 橙叶博客 作者:FrankGreg 发表,转载请注明来源!

热评文章

评论:

26 条评论,访客:26 条,博主:0 条
  1. avatar
    杯子发布于: 

    基本可以运行,但是问题还是有的。
    ocDownloader 的问题是要求aria2以无密码无口令的方式运行,这是一个很大的隐患。
    其次,ocDownloader调用Aria2需要两者以相同的权限运行,但问题在于,如果以相同的权限进行(即php用的www-data),那么配置文件在 /root 目录下 你怎么运行呢 这可不是sudo就能解决的事情呀。

    离功能完整还有很大距离,这里可以提供站长VPS复现一遍,希望能解决隐患。

  2. avatar
    咕咕咕发布于: 

    请问这个插件怎么更新啊?我用的snap装的nextcloud找不到apps路径

  3. avatar
    任性合道发布于: 

    aria2下载的路径在nextcloud里面就可以直接看到吗?
    要不要files.scan?

  4. avatar
    明日之章发布于: 

    博主,为什么我启动XShell远程的时候可以使用oc,但是关闭Xshell后就不能使用,显示返回的GID为空,请确保Aria2c正在运行

    • FrankGreg发布于: 

      因为关闭ssh后进程就自动停掉了,可以用screen命令解决

  5. avatar
    jcp发布于: 

    博主我想问一下 ,我下载的文件没有权限删除,怎么办

  6. avatar
    Alex Kuang发布于: 

    开头给的两个链接位置对应反了

    • FrankGreg发布于: 

      谢谢提醒!已更正

  7. avatar
    Debris发布于: 

    提示:错误,找不到GID!
    请问下是什么问题呢?

  8. avatar
    Tao发布于: 

    我nextcloud安装的内网 所有的网络都是千兆连接 用smb传输能有95MB-110MB/s的速度 但是用nextcloud传输却始终只有12M/s 请问这是什么原因呢?
    Apache+PHP7.2+Maridb10.2+Zend Opcache+ionCube+ImageMagick+Redis+memcached 的服务器环境 运行内存4G 我感觉应该不是机器本身性能的问题吧。

    • FrankGreg发布于: 

      因为从Nextcloud的下载并不等于直接从服务器上下载,中间会有一个php处理过程,可能会有速度上的消耗,这个具体的我也不太清楚……

  9. avatar
    b发布于: 

    aria2设置了令牌,ocdownload怎么设置啊?

  10. avatar
    5uwu发布于: 

    感谢分享,想请问一下nextcloud在线播放视频很卡有好的办法解决吗,应该不是服务器性能的原因

    • FrankGreg发布于: 

      可能是网络的问题?有时候即使是局域网,播放高清视频也可能会卡顿

  11. avatar
    Edel发布于: 

    使用curl 模式下载youtube视频,下载之后无法显示出来。用linux ssh ls 命令可以看到在 nextcloud 目录下有相应文件

    • avatar
      Edel发布于: 

      经过本人试验,youtub视频下载成功后,需要点击一下completed downloads 才能才文件夹里看见这个视频

  12. avatar
    雪碧发布于: 

    已经安装成功了,但是没法使用!
    Tip:无法获取YouTube视频链接

    • FrankGreg发布于: 

      具体是什么情况~ 因为那啥,Youtube下载功能我还没试过……

      • avatar
        雪碧发布于: 

        BitTorrent没法下载,一直卡着不动。

      • avatar
        雪碧发布于: 

        大佬我加了你的群,快同意一下吧!

        • avatar
          WindyRonnie发布于: 

          youtube需要当前网络能翻墙才可以下载。

          • avatar
            nnv发布于: 

            在外网的大盘鸡里面。现在的情况是,手动的话可以用youtube-dl下载视频,但是丢到ocdownloader就说无法获取连接,和楼上的一样,有什么解决办法吗?

  13. avatar
    xixi发布于: 

    下载完文件后没办法删除呢?
    在nextcloud下面看到提示没有权限

    • avatar
      debris发布于: 

      我也是这样,请问你解决没有呢?

    • avatar
      太阳发布于: 

      用启动nextcloud的用户去启动aria2c。
      比如:sudo -u nginx(linux用户) aria2c –conf-path=/etc/aria2/aria2.conf(配置文件)

  14. avatar
    xixi发布于: 

    centos下如何安装?

任性合道进行回复 取消回复