服务器搭建离线下载的尝试与实现方式

发布于 2019-11-07  65 次阅读


前言

经常需要从外网下载很多东西,但由于国内「墙」的存在使得下载速度慢得一踏糊涂,甚至无法访问。手头有一台cloudclone的服务器(就是现在跑网页的),以服务器作为中转下载,然后再取回,这样可以达到不错的下载速度(使用idm等多线程下载器

过程

首先尝试搭建了Cloudreve,号称基于aria2的离线下载,支持对接一些网盘储存。安装过程蛮顺利,但使用中发现了一些问题:

  • 界面逻辑应该改善:可以说是金絮其外,败絮其中。Material-UI挺漂亮,但交互做得不是很好,比如在首界面点击左边的音乐/视频后直接进入搜索模式获取对应格式的内容,然而界面上却没有提供返回键。
  • 基于aria2的离线下载存在问题:需要先下载在一个临时文件夹里再由PHP复制取回,原文件由于权限不能够被删除,这就导致了下载一个文件需要用双倍的空间。不能删除因为在宝塔面板里php和aria2的执行用户是不同的。

之后尝试了oneIndex以及olaIndex,,这两个都可以挂载onedrive使之以直链的形式被导出。但前者在onedrive高峰期会因为API问题无法访问,后者测试的时候死活绑定不了网盘账号。
类似的程序还有PyOne及CuteOne,由于搭建需要Nginx,所以没再测试。

实现方式

Aria2和AriaNG下载文件,以脚本上传至Onedrive,再由rclone挂载Onedrive到h5ai的目录实现网页端读取功能,文件管理使用kodexplorer。
在选择文件管理器时也遇到了一些坑,filerun和nextcloud试了一圈,最后选择了kodexplorer。
经测试一部分视频文件由于解码问题无法在h5ai播放,又挂了一个FTP方便iPad看视频。

搭建方式参考如下,不再赘述。
https://www.moerats.com/archives/700/
https://www.moerats.com/archives/697/
https://www.moerats.com/archives/491/
https://www.moerats.com/archives/870/
https://larsjung.de/h5ai/
https://kodcloud.com/

其中需要做出一些修正:

想要挂载多个盘的话,Rclone服务需要做一些修改

#以下是一整条命令,先修改DriveName:Folder和LocalFolder的值,再一起复制到SSH客户端运行
#rclone.service可改为 任意名.service 这样可以挂载多个网盘
cat > /etc/systemd/system/rclone.service <<EOF
[Unit]
Description=Rclone
AssertPathIsDirectory=LocalFolder
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/rclone mount DriveName:Folder LocalFolder \
 --umask 0000 \
 --default-permissions \
 --allow-non-empty \
 --allow-other \
 --buffer-size 32M \
 --dir-cache-time 12h \
 --vfs-read-chunk-size 64M \
 --vfs-read-chunk-size-limit 1G
ExecStop=/bin/fusermount -u LocalFolder
Restart=on-abort
User=root

[Install]
WantedBy=default.target
EOF
#rclone改为你修改的服务名
systemctl start rclone #启动服务
systemctl enable rclone #开机自启

上传脚本需要做一些改变,重载onedrive挂载盘:

#在上传脚本末尾添加,用来上传完毕后重启rclone服务
#我这里的服务名字为上面自己改的rcloneOD.service
systemctl restart rcloneOD;

对Aria配置做一些改变,更多参数参考官方doc:

# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0 (分享率为共享提供几份文件
seed-ratio=1.0
# 最大做种时间 单位分钟
seed-time=150
#以上两个参数为逻辑或

完毕

离线下载内容会自动上传至onedrive并删除本地文件,通过h5ai可导出onedrive直链下载链接,视频文件可直接通过网页流媒或以FTP的方式观看。

我的h5ai分享站:
http://file.yukino.co/


凡心所向,素履所往。