此项目是一个在线文件目录的程序, 支持各种对象存储和本地存储, 使用定位是个人放常用工具下载, 或做公共的文件库. 不会向多账户方向开发.

前端基于 h5ai 的原有功能使用 Vue 重新开发了一遍. 后端采用 SpringBoot, 数据库采用内嵌数据库.

作者GITHUB

后端 Gayhub 地址: https://github.com/zhaojun1998/zfile

前端 Gayhub 地址: https://github.com/zhaojun1998/zfile-vue

预览地址: https://zfile.jun6.net

系统特色

  • 内存缓存 (免安装)
  • 内存数据库 (免安装)
  • 个性化配置
  • 自定义目录的 header 说明文件
  • 自定义 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 default-jdk unzip

如为更新程序, 则请先执行 ~/zfile/bin/stop.sh 停止命令和 rm -rf ~/zfile 清理旧程序. 首次安装请忽略此选项. 不会删除数据文件.

下载项目:

wget -P ~ https://c.jun6.net/zfile/zfile-1.2.1.war
cd ~
mkdir zfile && unzip zfile-1.2.war -d zfile && rm -rf zfile-1.2.1.war
chmod +x ~/zfile/bin/*.sh

程序的目录结构为:

1
2
3
4
5
6
7
├── zfile
├── META-INF
├── WEB-INF
└── bin
├── start.sh # 启动脚本
└── stop.sh # 停止脚本
├── restart.sh # 重启脚本

启动项目:

~/zfile/bin/start.sh
停止项目:

~/zfile/bin/stop.sh
重启项目:

~/zfile/bin/restart.sh
修改配置文件:

vim ~/zfile/WEB-INF/classes/application.yml

默认启动端口为 8080, 如需请配置文件请编辑上述文件, 修改后重启程序生效.

访问地址:

用户前台: http://127.0.0.1:8080/#/main

初始安装: http://127.0.0.1:8080/#/install

管理后台: http://127.0.0.1:8080/#/admin

OneDrive 使用教程.

访问地址进行授权, 获取 accessToken 和 refreshToken:

[国际版点击onedrive获取授权](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/onedirve/callback&scope=offline_access User.Read Files.ReadWrite.All)

[世纪互联版本点击onedrive获取授权](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/onedirve/china-callback&scope=offline_access User.Read Files.ReadWrite.All)

然后分别填写至访问令牌和刷新令牌即可:如果出现数据异常,请升级最新版本

宝塔反代域名:

宝塔用户可以去后台开放端口:

zfile

CentOS 7.x

firewall-cmd –zone=public –add-port=8080/tcp –permanent # 开放 8080 端口
firewall-cmd –reload # 重启firewall

Ubuntu 16.x / Debian 9.x

iptables -I INPUT -p tcp –dport 8080 -j ACCEPT
iptables-save
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

域名访问

域名访问可直接将域名 A 记录解析到服务器 IP, 即可通过 域名:端口 访问.

如需直接使用域名, 不带端口, 可将程序设置为 80 端口, 或者使用 nginxcaddy 等工具进行反向代理.

这里只简单介绍下宝塔如何进行反向代理:

首先点击 网站 -> 新增站点:

zfile

点击反向代理:

zfile

设置反向代理:

zfile

然后就可以使用域名访问了.

常见问题

数据库

缓存默认支持 h2mysql, 前者为嵌入式数据库, 无需安装, 但后者相对性能更好.

默认路径

默认 H2 数据库文件地址: ~/.zfile/db/, ~ 表示用户目录, windows 为 C:/Users/用户名/, linux 为 /home/用户名/, root 用户为 /root/

头尾文件和加密文件

  • 目录头部显示文件名为 header.md

  • 目录需要密码访问, 添加文件 password.txt (无法拦截此文件被下载, 但可以改名文件)

    centos7 添加开机自启动sh脚本

    1.添加开机自启脚本

    脚本路径和内容试自己情况而定,下面是示例sh内容

    1
    2
    #!/bin/bash
    nohup /webapps/frp/frps -c /webapps/frp/frps.ini &

    2.赋予脚本可执行权限

    1
    chmod +x /webapps/shell/autostart.sh

    3.打开/etc/rc.d/rc.local文件,在末尾增加如下内容

    1
    echo "/root/zfile/bin/start.sh"  >> /etc/rc.d/rc.local

    或者使用vi/vim编辑器,在末尾追加

    1
    vi /etc/rc.d/rc.local

    4.赋予/etc/rc.d/rc.local的执行权限

    在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限

    1
    chmod +x /etc/rc.d/rc.local