私人滴云盘:Z-File – 开源免费的个人自建网盘程序(支持云存储/OneDrive)
简介
Z-File 是一款定位于个人网盘的免费开源程序,其界面简洁舒适,支持文件全局搜索,可以预览图片、文本或 Markdown 文档、支持代码高亮、提供目录/文件二维码、可以在线播放视频、按文件夹播放音乐列表,支持设置文件夹密码等等。
Z-File 是一个在线文件目录的程序, 支持各种对象存储和本地存储, 使用定位是个人放常用工具下载, 或做公共的文件库. 不会向多账户方向开发.
前端基于 h5ai 的原有功能使用 Vue 重新开发了一遍. 后端采用 SpringBoot, 数据库采用内嵌数据库.
博主的演示站:https://pan.zm.ci
预览
系统特色
- 内存缓存 (免安装)
- 内存数据库 (免安装)
- 个性化配置
- 自定义目录的 readme 说明文件
- 自定义 JS, CSS
- 文件夹密码
- 支持在线浏览文本文件, 视频, 图片, 音乐. (支持 FLV 和 HLS)
- 文件/目录二维码
- 缓存动态开启, 缓存自动刷新
- 全局搜索
- 支持 阿里云 OSS, FTP, 华为云 OBS, 本地存储, MINIO, OneDrive 国际/家庭/个人版, OneDrive 世纪互联版, 七牛云 KODO, 腾讯云 COS, 又拍云 USS.
快速开始
安装依赖环境:
# CentOS系统
yum install -y java-1.8.0-openjdk unzip
# Debian/Ubuntu系统
apt update
apt install -y openjdk-8-jre-headless unzip
如为更新程序, 则请先执行
~/zfile/bin/stop.sh && rm -rf ~/zfile
清理旧程序. 首次安装请忽略此选项.
下载项目:
cd ~
wget https://c.jun6.net/ZFILE/zfile-release.war
mkdir zfile && unzip zfile-release.war -d zfile && rm -rf zfile-release.war
chmod +x zfile/bin/*.sh
程序的目录结构为:
├── zfile
├── META-INF
├── WEB-INF
└── bin
├── start.sh # 启动脚本
└── stop.sh # 停止脚本
├── restart.sh # 重启脚本
启动项目:
~/zfile/bin/start.sh
访问地址:
用户前台: http://127.0.0.1:8080/#/main
初始安装: http://127.0.0.1:8080/#/install
管理后台: http://127.0.0.1:8080/#/admin
OneDrive 使用教程.
访问地址进行授权, 获取 accessToken 和 refreshToken:
国际/家庭/个人版:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=09939809-c617-43c8-a220-a93c1513c5d4&response_type=code&redirect_uri=https://zfile.jun6.net/onedrive/callback&scope=offline_access%20User.Read%20Files.ReadWrite.All
世纪互联版:
https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize?client_id=4a72d927-1907-488d-9eb2-1b465c53c1c5&response_type=code&redirect_uri=https://zfile.jun6.net/onedrive/china-callback&scope=offline_access%20User.Read%20Files.ReadWrite.All
然后分别填写至访问令牌和刷新令牌即可:
常见问题
数据库
缓存默认支持 h2
和 mysql
, 前者为嵌入式数据库, 无需安装, 但后者相对性能更好.
默认路径
默认 H2 数据库文件地址: ~/.zfile/db/
, ~
表示用户目录, windows 为 C:/Users/用户名/
, linux 为 /home/用户名/
, root 用户为 /root/
文档文件和加密文件
- 目录文档显示文件名为
readme.md
- 目录需要密码访问, 添加文件
password.txt
(无法拦截此文件被下载, 但可以改名文件)
宝塔反代
域名访问可直接将域名 A 记录解析到服务器 IP, 即可通过 域名:端口 访问.
如需直接使用域名, 不带端口, 可将程序设置为 80 端口, 或者使用 nginx 或 caddy 等工具进行反向代理.
简单介绍下宝塔如何进行反向代理:
- 首先先添加网站。网站 -> 新增站点
- 点击反向代理。(如果需要开启SSL,就先去开启再反代,反代后无法申请成功免费3个月的SSL哦。)
- 最后就能用域名访问了。