最近我们又发现了一个新的非常不错的开源网盘项目——Z-File。这是一个简单好用的个人网盘应用 (目录列表程序),可支持本地存储或对接各种对象存储服务……
搭建个人在线分享网盘的开源程序
Z-File 是一款定位于个人网盘的免费开源程序,其界面简洁舒适,支持文件全局搜索,可以预览图片、文本或 Markdown 文档、支持代码高亮、提供目录/文件二维码、可以在线播放视频、按文件夹播放音乐列表,支持设置文件夹密码等等。
Z-File 最大的特点在于,除了可以将文件存储在 VPS 服务器自身的硬盘以外,还可以支持后端对接各种云存储服务,比如阿里云 OSS、腾讯云 COS、OneDrive 国际/家庭/个人版、OneDrive 世纪互联版、 华为云 OBS、七牛云 KODO、又拍云 USS,或者远程 FTP 服务器等等。
意思就是说,如果接入这些服务之后,Z-File 只提供了网盘管理界面供你访问,而你网盘上的文件实际上是保存在这些云服务 (对象存储服务) 上的。
图片预览
系统特色
内存缓存 (免安装)
内存数据库 (免安装)
个性化配置
自定义目录的 header 说明文件
自定义 JS, CSS
文件夹密码
支持在线浏览文本文件, 视频, 图片, 音乐. (支持 FLV 和 HLS)
文件/目录二维码
缓存动态开启, 缓存自动刷新
全局搜索
支持 阿里云 OSS, FTP, 华为云 OBS, 本地存储, MINIO, OneDrive 国际/家庭/个人版, OneDrive 世纪互联版, 七牛云 KODO, 腾讯云 COS, 又拍云 USS.
数据库
缓存默认支持 h2 和 mysql, 前者为嵌入式数据库, 无需安装, 但后者相对性能更好.
默认路径
默认 H2 数据库文件地址: ~/.zfile/db/, ~ 表示用户目录, windows 为 C:/Users/用户名/, linux 为 /home/用户名/, root 用户为 /root/
文档文件和加密文件
目录文档显示文件名为 readme.md
目录需要密码访问, 添加文件 password.txt (无法拦截此文件被下载, 但可以改名文件)
开发计划
API 支持 点击查看文档
更方便的部署方式
布局优化 – 自定义操作按钮 (现为右键实现)
后台优化 – 设置按照其功能进行分离
体验优化 – 支持前后端分离部署
体验优化 – 文本预览更换 vscode 同款编辑器 monaco editor
新功能 – 后台支持上传、编辑、删除等操作
新功能 – WebDav 支持
新功能 – Docker 支持
新功能 – 离线下载 (aria2)
体验优化 – 忽略文件列表 (正则表达式)
体验优化 – 自定义支持预览的文件后缀 (正则表达式)
架构调整 – 支持多存储策略
体验优化 – 一键安装脚本
快速开始
安装依赖环境:
Bash
# CentOS系统
yum install -y java-1.8.0-openjdk unzip
# Debian/Ubuntu系统
apt update
apt install -y openjdk-8-jre-headless unzip
本段代码来自 http://www.00ylw.com/wzdj/3250.html
如为更新程序, 则请先执行 rm -rf ~/zfile 清理旧程序. 首次安装请忽略此选项.
下载项目:
Bash
wget -P ~ https://c.jun6.net/ZFILE/zfile-1.2.1.war
cd ~
mkdir zfile && unzip zfile-1.2.1.war -d zfile && rm -rf zfile-1.2.1.war
chmod +x ~/zfile/bin/*.sh
本段代码来自 http://www.00ylw.com/wzdj/3250.html
程序的目录结构为:
Bash
├── zfile
├── META-INF
├── WEB-INF
└── bin
├── start.sh # 启动脚本
└── stop.sh # 停止脚本
├── restart.sh # 重启脚本
本段代码来自 http://www.00ylw.com/wzdj/3250.html
启动项目:
Bash
~/zfile/bin/start.sh
本段代码来自 http://www.00ylw.com/wzdj/3250.html
重要参数:
server.port 为指定端口, 默认为 8080
logging.path 为日志文件存放路径, 默认为 ${user.home}/.zfile/logs
spring.datasource 下配置了 h2和 mysql两种数据库的支持, 默认采用 h2.
spring.cache.type为指定缓存方式, 默认为 caffeine, 即内存缓存, 无需安装, 支持切换为 redis, 但需配置 spring.redis.host 和 spring.redis.password 参数后才可使用.
访问地址:
用户前台: http://127.0.0.1:8080/#/main
初始安装: http://127.0.0.1:8080/#/install
管理后台: http://127.0.0.1:8080/#/admin
此项目是一个在线文件目录的程序, 支持各种对象存储和本地存储, 使用定位是个人放常用工具下载, 或做公共的文件库. 不会向多账户方向开发.
前端基于 h5ai 的原有功能使用 Vue 重新开发了一遍. 后端采用 SpringBoot, 数据库采用内嵌数据库.
总结:
总体来说,Z-File 的功能可以满足个人网盘的绝大多数的需求,它简单易用,后端还可以对接云服务或 OneDrive、远程 FTP 服务器等等,也是它最大的特色。
如果你需要一个私有的网盘,除了购买 NAS 或购买百度网盘 VIP 以外,更“好玩”折腾的方式就是通过这些开源程序自己搭建一个。特别是你手上已有服务器的情况下,用 Z-File 建一个玩玩是不错的。
官方地址:https://github.com/zhaojun1998/zfile