ZFILE一款开源的文件目录挂载程序以及管理脚本

-----水文章~------

网上关于zfile的教程是一大把啦,今天来水一下文章。我自己是从这个程序的1.2.1版本开始使用的。本教程可能会带有自己的一些理解在里头;如果有杠精都是你对,你说的都对。

img

img

项目介绍

项目地址:https://github.com/zhaojun1998/zfile

官方文档:https://docs.zfile.vip

预览地址: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

    image-20220418211115532

    image-20220418211115532

    看到OK并非一定启动了,如果是linux系统必须看到pid才证明正常启动了。

安装完成之后访问:·http://ip+8080`,进入默认安装界面。(记得放行服务器的8080端口哦,默认是8080端口)

进入安装界面。信息根据自己实际填写、

image-20220418211153870

image-20220418211153870

安装完之后,自动跳回到本地。而后会提示你创建新的驱动器。

image-20220418211231712

image-20220418211231712

输入你刚刚设置的后台账号密码

image-20220418211314667

image-20220418211314667

在这里添加新的存储(驱动器)

选择你想添加的存储策略。

这里选择onedrive。

image-20220418211525463

image-20220418211525463

每个配置的具体功能作者都贴心的在右侧添加了配置提示信息。

配置文件修改

进入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

显示设置配置

image-20220418212717572

image-20220418212717572

具体看右侧小提示

这边提供一个自定义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

image-20220418214936186

image-20220418214936186

可根据个人需求使用。本脚本由@wayen大佬提供。

最后修改:2022 年 06 月 16 日
如果觉得我的文章对你有用,请随意赞赏