网盘程序:Zflie、简洁直观的在线文件目录程序,支持各种对象存储和本地存储,包括Onedrive和世纪互联

发布于 2020-06-27  42 次阅读


网盘程序:Zflie、简洁直观的在线文件目录程序,支持各种对象存储和本地存储,包括Onedrive和世纪互联

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

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

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

系统特色

  • 内存缓存 (免安装)
  • 内存数据库 (免安装)
  • 个性化配置
  • 自定义目录的 readme 说明文件
  • 自定义 JS, CSS
  • 文件夹密码
  • 支持在线浏览文本文件, 视频, 图片, 音乐. (支持 FLV 和 HLS)
  • 文件/目录二维码
  • 缓存动态开启, 缓存自动刷新 (v2.2 及以前版本支持)
  • 全局搜索 (v2.2 及以前版本支持)   后继更新
  • 同时挂载多个存储策略
  • 支持 阿里云 OSS, FTP, 华为云 OBS, 本地存储, MINIO, OneDrive 国际/家庭/个人版, OneDrive 世纪互联版, 七牛云 KODO, 腾讯云 COS, 又拍云 USS.

安装教程:

Zfile支持Linux和windows两种版本,请根据自己系统来选择下列安装方法:

Linux

此处的命令中都默认安装到用户目录下: ~

对于 root 用户, 在 /root/ 路径下, 对于其他用户, 在 /home/用户名/ 路径下。

如需更改安装路径, 请自行修改。

安装依赖

如为更新程序, 则可跳过此步骤, 但要执行命令, 停止服务并清理上个版本的程序: ~/zfile/bin/stop.sh && rm -rf ~/zfile (不会删除数据文件)

# CentOS系统
yum install -y java-1.8.0-openjdk unzip
# Debian/Ubuntu系统
apt update
apt install -y openjdk-8-jre-headless unzip

下载项目

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

常用命令

 ~/zfile/bin/start.sh       # 启动项目
 ~/zfile/bin/stop.sh        # 停止项目
 ~/zfile/bin/restart.sh     # 重启项目

Windows

安装依赖

安装 JDK8, 并配置环境变量, 可参考: https://jingyan.baidu.com/article/ce09321b85e8d62bff858f93.html

下载项目

下载文件 https://c.jun6.net/ZFILE/zfile-release.jar

启动项目

然后在文件所在路径下, 使用 cmd 执行命令 (不支持 powershell):

java -Dfile.encoding=utf-8 -jar -Dserver.port=8080 .\zfile-release.jar

如需要修改配置文件, 可去 Github 复制一份配置文件, 放到 jar 文件同路径即可.

功能介绍:

密码文件夹

在需要密码访问的文件夹,添加 password.txt,文件内容为文件夹密码,如为中文密码,请保证文件为 UTF8 编码。

此文件不会显示,但无法防止被下载,可指定密码文件名,在配置文件 application。yml 中 zfile -> conconstant -> password 修改。

文档区

在需要添加文档的文件夹,添加 readme。txt,文件内容为文件夹密码,如包含中文,请保证文件为 UTF8 编码。

此文件不会显示,可指定文档文件名,在配置文件 application。yml 中 zfile -> conconstant -> readme 修改。

自定义 CSS JS

在对应的框内,写 CSS、JS 代码即可,无需写 <style> 或 script 标签。

缓存功能

开启缓存后,会缓存文件夹中的内容,可以加快访问速度,但同样也可能会导致数据不一致。缓存每 30 分钟刷新一次。

搜索功能

可全局搜索整个存储引擎中的内容。

搜索功能,需开启缓存后,才可生效。

搜索包含加密文件

如关闭此选项,如文件夹中需要密码访问,则此文件夹及其子文件夹中的内容,不会出现在搜索结果中。

忽略大小写

搜索忽略大小写。

OneDrive 令牌

OneDrive 令牌,会在以下情况下自动刷新:

  1. 项目启动 30 秒后,每 15 分钟自动刷新一次 (令牌有效期为 1 小时)。
  2. 保存存储策略时
  3. 切换到 OneDrive 策略时

常见问题:

如何更改端口

vim ~/zfile/WEB-INF/classes/application.yml
server:
    port: 8080      # 修改此处.

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

为什么启动后无法访问

可能是防火墙没开启. 下面介绍如何防火墙开启端口. 对于阿里云、腾讯云、谷歌云等厂商, 可能还需要额外去后台开启防火墙.

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

宝塔面板

宝塔面板可以去后台开放端口:

网盘程序:Zflie、简洁直观的在线文件目录程序,支持各种对象存储和本地存储,包括Onedrive和世纪互联

如何使用域名进行访问

方式1: 将域名 A 记录解析到服务器 IP, 即可通过 域名:端口 访问 (80 端口即可免输入端口).

方式2: 使用 nginx 或 caddy 等工具反向代理. 以下以宝塔面板为例:

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

网盘程序:Zflie、简洁直观的在线文件目录程序,支持各种对象存储和本地存储,包括Onedrive和世纪互联

点击反向代理:

网盘程序:Zflie、简洁直观的在线文件目录程序,支持各种对象存储和本地存储,包括Onedrive和世纪互联

设置反向代理:

网盘程序:Zflie、简洁直观的在线文件目录程序,支持各种对象存储和本地存储,包括Onedrive和世纪互联

为什么提示密码错误

  1. 请检查密码文件中是否包含中文,如果包含,请保持文件编码为 UTF8。
  2. 请检查密码文件中是否包含空格, 换行符等不可见字符.

前后端分离如何部署

下载 https://github.com/zhaojun1998/zfile/tree/master/src/main/resources/static 路径下的所有文件, 或在程序运行后的相对路径:WEB-INF/classes/static.

修改 zfile.config.json 内文件指向后端地址, 然后放到静态资源服务器, 或对象存储即可:

{
  "baseUrl": "http://xx.xxx.cn:8080"
}


我们的征途是是星辰大海