ZFILE一款开源的文件目录挂载程序以及管理脚本
-----水文章~------
网上关于zfile的教程是一大把啦,今天来水一下文章。我自己是从这个程序的1.2.1版本开始使用的。本教程可能会带有自己的一些理解在里头;如果有杠精都是你对,你说的都对。
项目介绍
项目地址:https://github.com/zhaojun1998/zfile
预览地址:https://zfile.vip
- 文件夹密码
- 目录 README 说明
- 文件直链(短链,永久直链,二维码)
- 支持在线浏览文本文件, 视频, 图片, 音乐. (支持 FLV 和 HLS)
- 图片模式
- Docker 支持
- 隐藏指定文件夹(通配符支持)
- 自定义 JS, CSS
- 自定义目录 README 说明文件和密码文件名称
- 同时挂载多个存储策略
- 缓存动态开启,
缓存自动刷新 (v2.2 及以前版本支持) 全局搜索 (v2.2 及以前版本支持)支持 S3 协议, 阿里云 OSS, FTP, 华为云 OBS, 本地存储, MINIO, OneDrive 国际/家庭/个人版/世纪互联版/SharePoint, , 七牛云 KODO, 腾讯云 COS, 又拍云 USS.
安装教程:
Linux
安装依赖
# CentOS系统 yum install -y java-1.8.0-openjdk unzip ##安装jdk1.8和unzip # Debian/Ubuntu系统 apt update apt install -y openjdk-8-jre-headless unzipCopy to clipboardErrorCopied ##安装jdk1.8和unzip
下载项目
安装说明
下面命令中第一行表示默认安装到用户目录下:
~/zfile
下。对于
root
用户,~
=/root
,~/zfile
表示在/root/zfile
路径下。对于其他用户,
~
=/hone/用户名
表示在/home/用户名/
路径下。如对于oracle
用户,~/zfile
则表示安装在/home/oracle/zfile
下。如需更改安装路径, 请自行修改,如
export ZFILE_INSTALL_PATH=/data/zfile
,表示安装在/data/zfile
路径下。export ZFILE_INSTALL_PATH=~/zfile ##设置zfile安装路径为:~/zfile mkdir -p $ZFILE_INSTALL_PATH && cd $ZFILE_INSTALL_PATH ##创建zfile安装目录,进入安装目录 wget https://c.jun6.net/ZFILE/zfile-release.war ##下载程序源代码 unzip zfile-release.war && rm -rf zfile-release.war ##解压压缩包和删除压缩包 chmod +x $ZFILE_INSTALL_PATH/bin/*.shCopy to clipboardErrorCopied ##赋予启动脚本命令
常用命令
以下为默认未修改安装路径下的情况,如修改了安装路径请自行更改命令所在路径。
~/zfile/bin/start.sh # 启动项目 ~/zfile/bin/stop.sh # 停止项目 ~/zfile/bin/restart.sh # 重启项目Copy to clipboardErrorCopied
更新方式
如果没修改过安装路径,则停止程序后,删除安装文件夹即可,默认命令为:
(如修改过安装路径,则替换下方命令中的
~/zfile
部分为你的安装路径即可)# 停止程序 ~/zfile/bin/stop.sh # 删除安装文件夹 rm -rf ~/zfileCopy to clipboardErrorCopied # 重新下载安装最新版 export ZFILE_INSTALL_PATH=~/zfile mkdir -p $ZFILE_INSTALL_PATH && cd $ZFILE_INSTALL_PATH wget https://c.jun6.net/ZFILE/zfile-release.war unzip zfile-release.war && rm -rf zfile-release.war chmod +x $ZFILE_INSTALL_PATH/bin/*.shCopy to clipboardErrorCopied
Windows
安装依赖
安装 JDK8, 并配置环境变量, 可参考: https://jingyan.baidu.com/article/ce09321b85e8d62bff858f93.html
下载项目
下载文件 https://c.jun6.net/ZFILE/zfile-release.jar
启动项目
然后在文件所在路径下, 使用
cmd
执行命令 (不支持powershell
):# 不可关闭命令行,关闭即停止程序,或使用 ctrl + c 命令停止程序 java -Dfile.encoding=utf-8 -jar -Dserver.port=8080 .\zfile-release.jarCopy to clipboardErrorCopied
如需要修改配置文件, 可去 Github 复制一份配置文件, 点击进入, 放到
jar
文件同路径即可.更新方式
重新下载文件 https://c.jun6.net/ZFILE/zfile-release.jar 后,再次启动即可。
Docker
启动命令
镜像地址为:https://hub.docker.com/r/zhaojun1998/zfile
首次运行会自动创建数据库目录和日志文件目录,并映射到本地,分别为
/root/zfile/db
(数据库文件) 和/root/zfile/logs
(日志文件). 后期迁移可直接将整个zfile目录备份恢复, 并再次执行以下命令.docker run -d --name=zfile --restart=always \ -p 8080:8080 \ -v /root/zfile/db:/root/.zfile/db \ -v /root/zfile/logs:/root/.zfile/logs \ zhaojun1998/zfileCopy to clipboardErrorCopied
更新方式
停止并删除现有 docker 容器,及删除本地镜像后,重新执行上方命令即可。由于已经映射出数据库文件路径
/root/zfile/db
和日志文件路径/root/zfile/logs
,所以直接启动即可。 但为了保险起见还是建议启动前备份一份数据库文件到其他位置,再尝试启动,谨防数据丢失。安装完成之后,启动zfile
看到OK并非一定启动了,如果是linux系统必须看到pid才证明正常启动了。
安装完成之后访问:·http://ip+8080`,进入默认安装界面。(记得放行服务器的8080端口哦,默认是8080端口)
进入安装界面。信息根据自己实际填写、
安装完之后,自动跳回到本地。而后会提示你创建新的驱动器。
输入你刚刚设置的后台账号密码
在这里添加新的存储(驱动器)
选择你想添加的存储策略。
这里选择onedrive。
每个配置的具体功能作者都贴心的在右侧添加了配置提示信息。
配置文件修改
进入zfile文件夹
zfile/WEB-INF/classes/application.yml
打开application.yml
文件
zfile:
debug: false #调试模式
webdav: false #开启webdav
directLinkPrefix: directlink #直连默认前缀(注意:这个前缀是在域名/前缀/驱动器号/文件路径。因为多盘的原因,所以直连会包含驱动器号。)
log:
path: ${user.home}/.zfile/logs #日志路径
db:
path: ${user.home}/.zfile/db/zfile #内置数据库路径
tmp:
path: ${user.home}/.zfile/tmp #临时文件夹
cache:
auto-refresh:
interval: 1 #缓存检测时间
timeout: 1800 #缓存刷新时间
constant:
readme: readme.md #默认文档展示文件名
password: password.txt #默认密码文件名
preview:
audio:
maxFileSizeMb: 5 #音频最大在线浏览大小
text:
maxFileSizeKb: 512 #txt文件最大在线浏览大小
onedrive: #以下是onedrive的客户端id和秘钥以及重定向地址还有api权限,不懂的别去动哦
clientId: 09939809-c617-43c8-a220-a93c1513c5d4
clientSecret: _l:zI-_yrW75lV8M61K@z.I2K@B/On6Q
redirectUri: https://zfile.jun6.net/onedrive/callback
scope: offline_access User.Read Files.ReadWrite.All
onedrive-china: #以下是世纪互联onedrive的客户端id和秘钥以及重定向地址还有api权限,不懂的别去动哦
clientId: 4a72d927-1907-488d-9eb2-1b465c53c1c5
clientSecret: Y9CEA=82da5n-y_]KAWAgLH3?R9xf7Uw
redirectUri: https://zfile.jun6.net/onedrive/china-callback
scope: offline_access User.Read Files.ReadWrite.All
server:
port: 8080 #默认端口
servlet:
context-path: ''
tomcat:
threads:
max: 20
compression:
enabled: true
spring:
h2:
console:
settings:
web-allow-others: true
path: /h2-console
enabled: ${zfile.debug}
datasource:
# h2 内存数据库 配置
driver-class-name: org.h2.Driver
url: jdbc:h2:${zfile.db.path}
username: zfile
password: 123456
# MySQL 配置 #如果需要使用MySQL的小伙伴可以把上面那个内置数据库的配置加上注释
# driver-class-name: com.mysql.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/zfile?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
# username: root
# password: 123456
jackson: #程序时区设置
date-format: yyyy-MM-dd HH:mm
time-zone: GMT+8
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
format_sql: false
show-sql: false
generate-ddl: true
defer-datasource-initialization: true
profiles:
active: prod
# 初始化数据导入
sql:
init:
continue-on-error: true
mode: always
data-locations: classpath*:db/data.sql
encoding: utf-8
显示设置配置
具体看右侧小提示
这边提供一个自定义css来美化zfile的默认风格哦,如果有更好的也可以推荐给我用用。
body {
background-image: url(https://drive.tefuir0829.cn/d/yyds/img-tefuir/1.jpg) !important;#背景图片可以自己改哦
background-position: center bottom !important;
background-size: cover !important;
background-attachment: fixed !important;
background-repeat: no-repeat !important;}
/*导航 透明*/
.zfile-header[data-v-5fca0787] {background: rgba(255, 255, 255, 0.6) !important;}
/*选择器透明*/
.el-input__inner {background-color: rgba(255, 255, 255, 0.6) !important;}
.el-select-dropdown {background-color: rgba(255, 255, 255, 0.9) !important;}
/*列表 透明*/
.el-table, .el-table__expanded-cell {
background-color: rgba(255, 255, 255, 0.6) !important;}
.el-table th, .el-table tr {
background-color: rgba(255, 255, 255, 0) !important;}
/*列表 字体颜色*/
.el-table thead {
color: rgba(0, 0, 0) !important;}
.el-table {
color: rgba(0, 0, 0) !important;}
/*列表按钮颜色*/
.operator-btn[data-v-39c0e91d] {
color: rgba(0, 0, 0) !important;}
.operator-btn[data-v-2ebcb9db] {
color: rgba(0, 0, 0) !important;}
/*文档区透明*/
.el-card {
background-color: rgba(255, 255, 255, 0.6) !important;}
/*导航字体颜色*/
.el-breadcrumb__item:last-child .el-breadcrumb__inner, .el-breadcrumb__item:last-child .el-breadcrumb__inner:hover, .el-breadcrumb__item:last-child .el-breadcrumb__inner a, .el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover {
color: rgba(0, 0, 0);}
/*右键 透明*/
.v-contextmenu {
background-color: rgba(255, 255, 255, 0.9) !important;}
/*公告 透明*/
.alert {
background-color: rgba(255, 255, 255, 0.9) !important;
color: rgba(0, 0, 0) !important;}
zfile管理一键脚本
wget https://raw.githubusercontent.com/iwayen/zfile-cli/master/zfile.sh
chmod +x zfile.sh
bash zfile.sh
可根据个人需求使用。本脚本由@wayen大佬提供。