实现用 AriaNG 远程控制 Aria2 进行下载,用 Nextcloud 进行文件管理(在线预览或同步至本地)。
我们需要
- 搭建好Nextcloud 详见: Centos搭建Nextcloud私有云(宝塔)
- 配置好Aria2 详见: Centos离线下载Aria2 AriaNG bt-tracker自动更新
做完以上两步我们来添加 Nextcloud 外部存储(本地),将 Nextloud 的外部存储(本地)目录作为 aria2 的默认下载目录。
应用管理界面启用 External storage support
打开外部存储设置页面
如果页面提示
没有安装 “smbclient”无法挂载 “SMB / CIFS”, “SMB / CIFS 使用 OC 登录信息”. 请联系您的系统管理员安装.
解决方法如下
yum -y install libsmbclient libsmbclient-devel
pecl install smbclient
安装完成后输出
Build process completed successfully
Installing '/www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/smbclient.so'
install ok: channel://pecl.php.net/smbclient-0.9.0
Extension smbclient enabled in php.ini
重载php-fpm
生效
# 重载php-fpm
宝塔-软件管理-php-7.0设置-php服务-重载配置
刷新网页
重要!!添加的外部存储目录(本地)必须已经存在,而且需要有www用户
读写权限。
创建目录,设置权限
# 例如新建一个目录
mkdir /home/test
chown -R www:www /home/test
chmod -R 750 /home/test
目录创建好之后,添加
- 目录名称 随意 nextcloud 显示的名称
- 外部存储 本地
- 认证 无
- 配置 /home/test 刚创建的目录
- 可用于 分配用户/组
- 设置 勾选预览、分享
- 保存 点击保存,左侧绿球说明生效,红方块请检查修改设置再保存
aria2 下载的文件默认权限为644所有者为root,其他用户默认只有读取权限。
所以你会发现 nextcloud 里的文件你只能预览及下载,无法删除。
所以我们需要添加计划任务,每隔1小时更新一次下载目录的权限(间隔自己掌握)
crontab -e
# 添加如下字段
* */1 * * * chown -R www:www /home/test
* */1 * * * chmod -R 750 /home/test
先关闭aria2
systemctl stop aria2c
# 或者
kill all aria2c
修改配置文件
vi /root/.aria2/aria2.conf
# 修改如下字段
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/home/test
重启aria2
systemctl start aria2c