今天给大家介绍如何利用开源工具,搭建一套无下载限制的私有云盘。
环境及工具
环境:
Nginx
PHP
Node.js
NPM
Gulp
Bower
工具:
KODExplorer
Aria2
Ariang
环境这里不多描述了,很简单,有问题留言联系我。下面直接工具讲解。
KODExplorer
KODExplorer是可道云的开源在线文档管理器
官网地址:https://kodcloud.com/
Github:https://github.com/kalcaddle/KodExplorer
KODExplorer是依赖于php环境的,可以跑在php5.3以上,推荐使用php7,性能好,对于不会搭建php环境的小白,推荐使用宝塔系统,或者其他php面板或者一键安装包都可以使用。
KODExplorer是一个很轻量级的全平台兼容的文档管理系统,使用GLP许可证,它的部署很简单,安装好php的web环境后,你只需要在nginx或apache中添加虚拟主机,web目录指向KODExplorer解压的目录即可。
现在你就可以通过你设置的web访问你的私有网盘,界面如下:
根据设置的账号及密码登陆,登陆后首页入下所示:
KODExplorer的文件管理界面,类似于各个网盘的工具界面,展示文件的基础信息,在该文档管理系统里,可以支持在线浏览,视频、office、以及音频等格式,并且支持在线解压等功能,详细的所有可支持的文件类型可以参考官网提供的帮助文档。
它的桌面功能虚拟了windows桌面应用,可以直接在线操作:
它的编辑器功能面板更是支持非常丰富的功能,支持各种开发语言的代码高亮,代码自动提示,多主题、自定义、自动补全等功能,及常用的快捷键都支持。
更多功能可以安装之后慢慢发掘。
Aria2
Aria2是一款免费开源跨平台且不限速的多线程下载软件,Aria2的优点是速度快、体积小、资源占用少;支持 HTTP / FTP / BT / Magnet 磁力链接等类型的文件下载;支持 Win、Mac、Linux系统,甚至在树莓派、NAS、路由器等设备上都能安装它。
官网地址:http://aria2.github.io/
Github:https://github.com/aria2/aria2
目前Aria2最新版本为1.34.0,下载地址:https://github.com/aria2/aria2/releases/tag/release-1.34.0
也可以选择通过yum或者apt-get安装,yum安装版本为1.18的版本,根据自己的能力下载安装,不会的留言找我。
下载安装后,就可以直接使用了。aria2分两种模式,一种是命令行,一种是RPC Server模式。
Aria2命令行使用:
- 使用Aria2下载文件,只需在命令后附加地址即可。如:
aria2c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2
- 分段下载。利用Aria2的分段下载功能可以加快文件的下载速度,对于下载大文件时特别有用。为了使用aria2的分段下载功能,你需要在命令中指定 -s 选项。如:
aria2c -s 2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 #这将使用2连接来下载该文件。-s后面的参数值介于1~5之间,你可以根据实际情况选择。
- 断点续传。在命令中使用-c选项可以断点续传文件。如:
aria2c -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2
- 下载tor-rent文件。你也可以使用Aria2下载BitTor—-rent文件。如:
aria2c -o gutsy.torrent http://cdimage.ubuntu.com/daily-live/current/gutsy-desktop-i386.iso.tor-rent
- 后台下载
aria2c -D url
aria2c –deamon=true url
- 验证文件
aria2c –checksum=md5=别人提供的md5
- B-T下载
aria2c /tmp/CentOS-6.3-i386-bin-DVD1to2.torr-ent
aria2c http://mirrors.163.com/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.tor-rent
- 设置dht端口
aria2c –dht-listen-port=1234 .torrent
- 下载需要引用页的文件
aria2c –referer=referurl url
- 限速下载
aria2c –max-download-limit=500k url //单个文件
aria2c –max-overall-download-limit=500k url //全局
- 下载需要Cookie验证的文件
aria2c –essay-header=’Cookie:cookie名称=cookie内容’ url
aria2c –load-cookies=cookie文件 url
- 批量下载文本中所有URL
aria2c -i uris.txt
#注意:当源地址存在诸如&,*等shell的特殊字符,请使用单引号或双引号把URI包含起来。
RPC Server模式
该模式主要是配合图形管理工具使用的。默认启动是6800端口,可以在配置文件中修改,可以设置用户名和密码,在新的版本中去掉了用户名密码配置,默认用认证方式。
- RPC模式命令行启动 aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all -c --dir /root/downloads -D (-D daemon模式,用于后台执行)
- 配置文件启动 aria2c --conf-path="/etc/aria2/aria2.conf"
配置文件详解:
## 文件保存相关 ##
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=~/downloads
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=none
# 断点续传
continue=true
## 下载连接相关 ##
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=1
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=5
# 整体下载速度限制, 运行时可修改, 默认:0
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0
#max-overall-upload-limit=0
# 单个任务上传速度限制, 默认:0
#max-upload-limit=0
# 禁用IPv6, 默认:false
disable-ipv6=true
## 进度保存相关 ##
# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
#save-session-interval=60
## RPC相关设置 ##
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=<TOKEN>
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
rpc-user=ruyo
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
rpc-passwd=RUYO.net
## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=true
# 打开IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
#bt-enable-lpd=true
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=true
# 每个种子限速, 对少种的PT很有用, 默认:50K
#bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=0
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
可以根据自己需求修改配置文件。
Ariang
AriaNg是一个让aria2更容易使用的现代Web前端,AriaNg使用纯html & javascript 开发, 所以其不需要任何编译器或运行环境. 您只要将 AriaNg 放在您的 Web 服务器里并在浏览器中打开即可使用。AriaNg 使用响应式布局, 支持各种计算机或移动设备。
官网地址:http://ariang.mayswind.net
Github:https://github.com/mayswind/AriaNg
AriaNg安装也很简单,首先确保服务器已安装Node.js,NPM,Gulp,Bower,之后从git或官网下载源码到服务器,解压进入目录后,只需要允许三条命令:
$ npm install
$ bower install
$ gulp clean build
构建后的内容将放置在dist目录中,之后可以通过nginx/apache构建虚拟主机访问,初次访问的时候,会提示Aria未连接,需要在AriaNg设置中,添加Aria2 PRC 密钥,密钥是在Aria2的配置文件中
设置之后,Aria2的状态就会显示为已连接,这个时候就可以新建下载任务进行下载了,Aria2的设置,都可以在这里进行设置。
完成这些安装之后,你可以将KODExplorer的文件目录和Aria2的下载保存目录设置为相同的目录。
Aria2还可以无限制下载百度网盘的文件,下次讲解。
欢迎分享和关注,运维实谈,不定期分享纯干货!