# Zdir 3 # 介绍 # Zdir 使用Golang + Vue3开发的轻量级目录列表程序,支持Linux、Docker、Windows部署,适合个人或初创公司文件分享使用,亦可作为轻量级网盘使用。 **演示地址:**[http://soft.xiaoz.org/#/](http://soft.xiaoz.org/#/) 首页展示: ![](https://img.rss.ink/imgs/2022/10/17/10d74765a20fdc7a.png) 用户登录界面: ![](https://img.rss.ink/imgs/2022/10/26/ab87df26eb6de9af.png) 多文件上传界面: ![](https://img.rss.ink/imgs/2022/10/26/9c874b430bbbf472.png) 文件详情页面: ![](https://img.rss.ink/imgs/2022/10/26/459da25f39ea1b7c.png) ## 功能特点 - [x] 目录列表 - [x] MarkDown预览 - [x] 支持搜索当前目录与全局搜索(备注:全局搜索仅Linux支持) - [x] 视频预览(支持H.264编码的`.mp4`格式及`.m3u8`) - [x] 音频预览 - [x] 图片预览 - [x] 代码与文本预览,支持部分代码高亮 - [x] CSS/JavaScript一键复制 - [x] Office在线预览(支持.doc .docx .xls .xlsx .ppt .pptx),**注意:如果是内网或IP访问或非标准端口方式不支持预览** - [x] 二维码生成 - [x] 支持中文显示 - [x] 支持Linux、Docker、Windows等多种部署方式 - [x] 文件上传、删除、重命名、新建目录 - [x] API支持 - [ ] 后台管理(站点信息设置等) - [ ] 文件复制、移动 - [ ] 私有文件 - [ ] 私有文件分享 - [ ] 音乐播放列表 ## 部分截图 强大的全局搜索功能: ![](https://img.rss.ink/imgs/2022/10/18/97bc16fb6308c774.png) 自动说明文件: ![](https://img.rss.ink/imgs/2022/10/18/c11609d24ed79d43.png) 方便的代码预览: ![](https://img.rss.ink/imgs/2022/10/18/abfa87eebd84fbe3.png) ## 快速开始 **Linux一键安装:** 如果您想快速安装Zdir,可以使用Zdir官方提供的一键安装脚本,只需要执行下面的命令: ```bash # CentOS系统 yum -y install curl curl -s "http://soft.xiaoz.org/zdir/sh/zdir.sh" | bash -s install # Debian or Ubuntu系统 apt-get install curl curl -s "http://soft.xiaoz.org/zdir/sh/zdir.sh" | bash -s install ``` - 默认安装路径为:`/data/apps/zdir` - 需要公开的文件列表路径位于`/data/apps/zdir/data/public` 安装完毕后访问`http://IP:6080`即可 --- 一键安装脚本适合对Linux系统不太熟悉或者想快速体验Zdir的朋友,您还可以参考帮助文档:获取更多安装方式。 ## 问题反馈 - 论坛:[https://xiawen.cc/t/zdir](https://xiawen.cc/t/zdir) - QQ:446199062 - QQ群:932795364 - TG:xiaozme # 安装 Zdir 3安装文档 # Linux安装Zdir **注意:安装前请关闭Selinux服务,不然可能无法正常启动!!!** ## 一键安装 如果您想快速安装Zdir,可以使用Zdir官方提供的一键安装脚本,只需要执行下面的命令: ```bash # CentOS系统 yum -y install curl curl -s "http://soft.xiaoz.org/zdir/sh/zdir.sh" | bash -s install # Debian or Ubuntu系统 apt-get install curl curl -s "http://soft.xiaoz.org/zdir/sh/zdir.sh" | bash -s install ``` * 默认安装路径为:`/data/apps/zdir` * 需要公开的文件列表路径位于`/data/apps/zdir/data/public` ## 手动安装 Zdir最新版本下载地址:[https://soft.xiaoz.org/#/public/zdir](https://soft.xiaoz.org/#/public/zdir) 以下操作请在SSH命令行完成(**注意:请自行修改为最新版下载地址**): ```bash # 创建一个新的目录用于存放zdir mkdir zdir # 进入目录 cd zdir # 下载最新安装程序 wget https://soft.xiaoz.org/zdir/3.2.0/zdir_3.2.0_linux_amd64.tar.gz # 解压 tar -xvf zdir_3.2.0_linux_amd64.tar.gz # 初始化 ./zdir init # 启动 systemctl start zdir # 停止 systemctl stop zdir # 重启 systemctl restart zdir # 开机自启 systemctl enable zdir ``` * 需要公开的文件列表路径位于`data/public` 注意,防火墙还需要放行`6080`端口 ```bash #firewalld firewall-cmd --zone=public --add-port=6080/tcp --permanent firewall-cmd --reload #如果使用的ufw ufw allow 6080/tcp ``` ## 初始化 安装完毕后,默认访问地址为`http://IP:6080/#/user/login`初始化用户名、密码,或者点击右上方的登录亦可。 ![](https://img.rss.ink/imgs/2022/10/25/e12ec1da1a7dc2f8.png) # Docker安装Zdir ## Docker常规安装 请确保您已经安装了Docker服务,然后执行下面的命令: ```bash docker run -d --name="zdir" \ -v /data/apps/zdir/data:/data/apps/zdir/data \ -v /data/public:/data/apps/zdir/data/public \ -p 6080:6080 \ --restart=always \ helloz/zdir:3.3.0 ``` * 第一个`/data/apps/zdir/data`为本机挂载路径,可自行修改,第二个`/data/apps/zdir/data`固定,不要修改 * `/data/public`为本地挂载目录(也就是Zdir要读取的文件夹),请根据实际情况修改 * 第一个`6080`为Zdir访问端口,可自行修改,第二个`6080`为容器端口,不要修改 ## docker compose安装 在Zdir目录下新建一个`docker-compose.yaml`,并复制一下内容: ```yml version: '3.3' services: zdir: container_name: zdir volumes: - '/data/apps/zdir/data:/data/apps/zdir/data' - '/data/public:/data/apps/zdir/data/public' ports: - '6080:6080' restart: always image: 'helloz/zdir:3.3.0' ``` 然后启动:`docker-compose up -d` ## 群晖安装 Docker 注册表里搜索 zdir 下载镜像(helloz/zdir),标签选择“latest” ![](https://img.rss.ink/imgs/2023/01/11/20b53ffdc4b531a6.png) 常规设置,勾选下面2个按钮: 1. 使用高权限执行容器 2. 启用自动重新启动 ![](https://img.rss.ink/imgs/2023/01/11/48f4dbb43ff1364d.png) 设置存储空间,注意: 1. 红框中的**文件/文件夹** 自己选择群晖里面的文件夹 2. 装载路径固定不变,不要修改。 * `/data/apps/zdir/data` 为Zdir配置文件等数据 * `/data/apps/zdir/data/public` 需要读取的文件列表 3. **不要勾选只读** ![](https://img.rss.ink/imgs/2023/01/11/e9b00a7323c989d2.png) 端口设置,容器端口 6800 不要动,本地端口为访问端口可自行修改设置。 ![](https://img.rss.ink/imgs/2023/01/11/697392b1cebad0b1.png) 其它选项保持默认不修改,然后创建并启动。最后访问页面右上方的登录进行初始化。 ## 初始化 安装完毕后,默认访问地址为`http://IP:6080/#/user/login`初始化用户名、密码,或者点击右上方的登录亦可。 ![](https://img.rss.ink/imgs/2022/10/25/e12ec1da1a7dc2f8.png) # Windows安装Zdir **注意:Windows环境下安装的Zdir不支持全局搜索** 访问:[http://soft.xiaoz.org/#/public/zdir](http://soft.xiaoz.org/#/public/zdir) 下载最新版本到本地并解压。 进入刚刚解压的`zdir`目录,鼠标右键“在终端打开” ![](https://img.rss.ink/imgs/2022/10/15/58a408bf6b762ff5.png) 执行命令`./zdir.exe init`进行初始化: ![](https://img.rss.ink/imgs/2022/10/15/3d0fc17703a23678.png) 此时会弹出“你要允许来自未知发布的此应用对你的设备进行更改吗?”,点是即可完成初始化,初始化完毕后终端会提示: ``` Init success. ``` 打开Win + R,输入services.msc,找到Zdir这个服务,点启动即可。 ![](https://img.rss.ink/imgs/2022/10/15/973d91cf2f6df67b.png) ## 初始化 安装完毕后,默认访问地址为`http://IP:6080/#/user/login`初始化用户名、密码,或者点击右上方的登录亦可。 ![](https://img.rss.ink/imgs/2022/10/25/e12ec1da1a7dc2f8.png) # 配置文件 ## 配置文件 * `3.2.0`及之后的版本,配置文件位于`data/config/config.ini` * `3.1.x`之前的版本,配置文件位于`data/config.ini` 配置文件查找规则为: 1. 优先查找`data/config/config.ini` 2. 如果`data/config/config.ini`未找到,则查找`data/config.ini` 以下是配置文件内容 ```ini # 服务端设置 [servers] port = :6080 RunMode = release # 存储设置 [storages] public_path = data/public public_domain = # 站点信息设置,此项目在3.2.0及之后的版本中不再使用 [sites] title = Zdir name = Zdir ``` 有以下参数需要注意: ### 服务端配置[servers] * `port`:Zdir监听端口,默认为`:6080`,可自行修改 * `RunMode`:Zdir运行默认,默认为`release`(生产环境),`debug`为调试模式 ### 存储配置[storages] * `public_path`:需要读取的文件夹路径,默认为空(`data/public`),你可以修改为其它绝对路径 * `public_domain`:公共文件的域名,默认为空(即当前域名 + /public,比如:http://localhost:6080/public),如果使用了nginx反向代理,可以设置为自己的域名,比如:`http://soft.xiaoz.org`且末尾不再需要`/public`也不需要带`/`(注意:需要带上http或https协议) ### 站点信息配置[sites](`3.2.0`及之后的版本已废弃此参数) * `title`:站点标题(浏览器标题栏处的显示) * `name`:站点名称(Zdir左上角的名称显示) ## 注意事项 * Windows系统的配置文件也应该将`\`替换为`/`,比如`D:\apps`应该修改为`D:/apps`,避免出现其它意外错误 * 修改配置文件后需要重启Zdir服务,并重启一次浏览器(因为Zdir使用了浏览器缓存) # Nginx反向代理 ## Nginx配置文件 您可以使用Nginx反向代理Zdir,使其通过域名访问。这是生产环境推荐的做法,下方配置可作为参考: ```nginx server { listen 80; #domain.com改成你自己的域名 server_name domain.com; # 精确匹配首页,=优先级最高 location = / { proxy_pass http://127.0.0.1:6080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 匹配Vue静态文件目录,和public公共文件夹目录 location ~* /(assets|public|api|admin) { #如果是图片等静态文件,添加Expires头部 if ( $uri ~* .*\.(gif|jpg|jpeg|png|bmp|webp|swf|flv|mp4|ts|ico|js|css|svg|ico)$ ) { expires 7d; } client_max_body_size 1024m; proxy_pass http://127.0.0.1:6080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 非/ 和非 /assets目录的时候进行重定向来去掉/public,/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到,优先级最低 location / { rewrite ^/(.*) /public/$1; } } ``` 然后修改Zdir配置文件`data/config/config.ini`在`public_domain`这个参数配置为自己的域名,比如`http://domain.com`(**注意:末尾不需要/,但需要带上http或https协议**),并重启Zdir ## 宝塔Nginx用户 如果您使用的宝塔,且安装了Nginx,可以在宝塔后台 - 添加站点 - 填写域名,并创建一个站点。 ![](https://img.rss.ink/imgs/2022/11/03/4e2a2df6b93a0b84.png) 然后修改这个站点 - 伪静态,添加下面的配置保存即可。 ![](https://img.rss.ink/imgs/2022/11/03/e48f6c7d9ce984a0.png) ```nginx # 精确匹配首页,=优先级最高 location = / { proxy_pass http://127.0.0.1:6080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 匹配Vue静态文件目录,和public公共文件夹目录 location ~* /(assets|public|api|admin) { #如果是图片等静态文件,添加Expires头部 if ( $uri ~* .*\.(gif|jpg|jpeg|png|bmp|webp|swf|flv|mp4|ts|ico|js|css|svg|ico)$ ) { expires 7d; } proxy_pass http://127.0.0.1:6080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 非/ 和非 /assets目录的时候进行重定向来去掉/public,/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到,优先级最低 location / { rewrite ^/(.*) /public/$1; } ``` 为了避免宝塔的默认规则影响,您还需要在站点配置文件,删除下面的规则: ![](https://img.rss.ink/imgs/2023/01/09/560f81680246579a.png) # 使用说明 Zdir 3使用说明。 # 添加站点图标(favicon.ico) 您只需要将`favicon.ico`这个文件上传到Zdir公共目录(默认是Zdir安装目录下的`data/public`)即可,注意: 1. 图标名称必须是`favicon.ico` 2. 如果您更改了`favicon.ico`图标,浏览器可能存在缓存,导致不能及时更新,您可以尝试更换浏览器或清除浏览器缓存 3. 如果您通过`config.ini`配置文件修改了公共目录的位置,相应的图标的上传位置也需要随之更改 # 添加统计代码 Zdir 3前端使用了Vue3开发,编译后是一个纯静态的单页面应用,下面介绍下添加统计代码的方法,以百度统计为例。 ## 百度统计设置 打开百度统计后台 - 使用设置 - 单页设置 - 右上角切换到你的网站 - 启用单页应用数据统计,然后保存,如下图。 ![](https://img.rss.ink/imgs/2022/10/18/50f1847bdfcced44.png) ## 添加统计代码 继续在“使用设置 - 代码获取”,复制统计代码。 ![](https://img.rss.ink/imgs/2022/10/18/97bb624d36addbb2.png) 在“Zdir后台 - 站点设置 - 自定义Header”中粘贴百度统计代码,并保存即可。 ![](https://img.rss.ink/imgs/2023/01/09/3dda287219e161be.png) # 去掉路径中的public 默认安装完毕后您会发现文件路径中存在一个`public`目录。 ![](https://img.rss.ink/imgs/2022/10/18/0624cc8028028417.png) 如果您想去掉这个目录,可以通过下面的方法完成。 首先参考另一篇文档[Nginx反向代理](https://doc.xiaoz.me/books/zdir-3/page/nginx) 配置反向代理。 然后修改Zdir配置文件(Zdir安装目录下的`data/config/config.ini`)修改`public_domain`这个参数为自己的域名,末尾不需要`/`,比如: ``` public_domain = http://soft.xiaoz.org ``` 然后重启Zdir,并重启一次浏览器,**注意一定要重启一次浏览器**,不然存在缓存无法生效。 > 注意:3.1.x版本配置文件位于`data/config.ini` # 重置账号、密码 如果您不小心忘记了Zdir用户名、密码,您可以通过以下方式重置。 找到Zdir配置文件`data/config/config.ini`(Zdir安装目录下)删除下面的2行配置: ``` password=7860b476xxxxxxxxx2d945ad7 username=xxxx ``` 最后访问您的Zdir地址:`http://IP:6080/#/user/login`进行重新初始化用户名/密码即可。 ![](https://img.rss.ink/imgs/2022/10/25/8b4b719d58214a6c.png) # 隐藏文件 以`.`/`@`/`#`开头的文件或文件夹,Zdir将视为隐藏文件,比如: * `.test` * `@test` * `#test` 因此您可以创建上述开头的文件进行隐藏,**但是注意,隐藏文件依然是可以被访问的,只是前端无法看到而已**。 # 升级 Zdir 3升级说明 # Linux升级Zdir3 针对Linux用户,我们准备了方便的一键升级脚本,推荐新手使用一键脚本升级,老手请随意。 ## 一键升级 升级前请确保您已经安装`curl`和`wget`: ```bash #CentOS yum -y install curl wget # Ubuntu or Debian apt-get -y install curl wget ``` 然后执行命令升级: ```bash curl -s "http://soft.xiaoz.org/zdir/sh/upgrade.sh"|bash -s 3.3.0 ``` 其中`3.3.0`为最新的Zdir版本号。 **注意:该升级脚本仅支持Linux X86_64,如果是ARM架构,请手动升级。** ## 手动升级 请依次执行下面的命令,手动升级Zdir: ```bash #停止Zdir systemctl stop zdir #进入您的Zdir目录 cd /data/apps/zdir #删除旧的静态文件 rm -rf data/dist/assets/ # 下载最新版Zdir wget http://soft.xiaoz.org/zdir/3.3.0/zdir_3.3.0_linux_amd64.tar.gz # 解压 tar -xvf zdir_3.3.0_linux_amd64.tar.gz # 添加执行权限 chmod +x zdir # 重新启动 systemctl start zdir ``` ## 注意 * `3.1.x`升级`3.2.0`反向代理的配置增加了规则,请参考:[Nginx反向代理](https://doc.xiaoz.me/books/zdir-3/page/nginx) * **如果是`3.0.0`升级`3.1.x`需要点击右上方登录按钮初始化账号、密码。** ![](https://img.rss.ink/imgs/2022/10/25/e12ec1da1a7dc2f8.png) # Windows升级Zdir3 ## 手动升级 打开`Win + R`,输入`services.msc`,找到Zdir这个服务,点停止。 ![](https://img.rss.ink/imgs/2022/10/26/1e37a86085922bcf.png) 然后访问:[http://soft.xiaoz.org/#/zdir](http://soft.xiaoz.org/#/zdir) 下载最新版的Zdir到本地,并解压覆盖您原来的Zdir安装目录。 最后重新在服务里面启动Zdir ![](https://img.rss.ink/imgs/2022/10/15/973d91cf2f6df67b.png) ## 注意 * `3.1.x`升级`3.2.0`反向代理的配置增加了规则,请参考:[Nginx反向代理](https://doc.xiaoz.me/books/zdir-3/page/nginx) * **如果是`3.0.0`升级`3.1.0`需要点击右上方登录按钮初始化账号、密码。** ![](https://img.rss.ink/imgs/2022/10/25/e12ec1da1a7dc2f8.png) # Docker升级Zdir3 ## 升级 Docker升级步骤为: 1. 停止原来的容器并删除 2. 更改镜像版本号 3. 按照原来的参数重新启动Zdir即可 停止原来的容器: ```bash #停止Zdir容器并删除 docker stop zdir && docker rm zdir ``` 删除原来(本地挂载目录下)的`/data/apps/zdir/data/dist`目录,**不删除无法更新前端**。 重新启动一个最新的容器: ```bash docker run -d --name="zdir" \ -v /data/apps/zdir/data:/data/apps/zdir/data \ -v /data/public:/data/apps/zdir/data/public \ -p 6080:6080 \ --restart=always \ helloz/zdir:3.3.0 ``` * 第一个`/data/apps/zdir/data`为本机挂载路径,可自行修改,第二个`/data/apps/zdir/data`固定,不要修改 * `/data/public`为本地挂载目录(也就是Zdir要读取的文件夹),请根据实际情况修改 * 其中`3.3.0`为最新的版本号。 ## 注意 1. **如果是`3.0.0`升级`3.1.x`需要点击右上方登录按钮初始化账号、密码。** 2. 如果是`3.1.x`升级`3.2.0`也需要进行重新初始化 ![](https://img.rss.ink/imgs/2022/10/25/e12ec1da1a7dc2f8.png) # 功能介绍 Zdir 3功能说明 # 局部搜索与全局搜索 Zdir支持搜索当前目录(局部搜索),与强大的全局搜索(依赖Linux的find命令)。 > 注意:Windows安装方式不支持全局搜索 ## 搜索当前目录 如果需要搜索当前目录下的文件,只需要在搜索框输入关键词,并敲击回车按钮即可。 ![](https://img.rss.ink/imgs/2022/10/18/725a1fc3944ad529.png) ## 全局搜索 在搜索框输入关键词后,将左侧的选项选择为“全局搜索”,并点击搜索即可实现全局搜索文件。 ![](https://img.rss.ink/imgs/2022/10/18/97bc16fb6308c774.png) ## 默认搜索 您可以通过点击“菜单 - 设置”,修改默认搜索。该设置仅对当前浏览器生效,更换浏览器后需要重新设置。 ![](https://img.rss.ink/imgs/2023/01/09/436747443276456f.png) ![](https://img.rss.ink/imgs/2023/01/09/07f611aba0edc4bb.png) # 自动说明文件(README.md) 当您的目录下存在`README.md`这个文件时,Zdir会自动渲染此文件并输出。注意文件名称区分大小写,必须为`README.md`,您可以在子目录下单独存放`README.md`文件,这样进入不同的目录都会有不同的说明。 ## 自动说明文件 比如我在公共目录(默认为Zdir安装目录的`data/public`)下存放了一个`README.md`文件,在面包屑导航的下方会出现一个“使用说明(README.MD)”的折叠面板,点击这个面板可以展开查看详细的说明文件。 ![](https://img.rss.ink/imgs/2022/10/18/71c840a344adf859.png) ## 子目录自动说明 如果您在子目录存放了`README.md`文件,进入子目录时也会进行渲染该文件,从而实现不同的目录、不同的说明。比如我在`data/public/zdir/3.0.0`目录下存放了一个`README.md`文件,效果如下。 ![](https://img.rss.ink/imgs/2022/10/18/c11609d24ed79d43.png) # 隐藏文件夹 Zdir和Linux一样,以`.`开头的文件被视为隐藏文件,如果某些文件您不想显示出来,可以创建以`.`开头的文件或文件夹即可。 **但是注意如果知道隐藏文件完整路径依然是可以访问的,因此如果是隐私文件,隐藏的做法并不可靠。** # 音乐列表功能 Zdir 3.2.0版本开始,新增音乐列表模式,当您进入某个目录的时候,如果该目录下存在音频文件,在Zdir WEB页面的左下角会出现一个音乐播放列表,如下图。 ![](https://img.rss.ink/imgs/2023/01/09/b8d37521c256b421.png) > 演示地址:[https://soft.xiaoz.org/#/public/music](https://soft.xiaoz.org/#/public/music) # 视频预览 Zdir支持在线播放H264编码的`.mp4`格式文件,其它编码和后缀暂不支持。不过不用担心,Zdir还提供了一键调用第三方外部播放器的功能,比如调用您本地的PotPlayer播放器。 ![](https://img.rss.ink/imgs/2023/01/09/2028e2366c0dc25b.png) **注意:前提是您本地已经安装对应的播放器(比如:PotPlayer),否则点击后没有反应。** # API Zdir3 API使用说明 # 获取认证(必看) Zdir 3部分接口,比如上传、重命名、删除等操作需要获取认证Token后才能操作,部分公共API则无需认证,获取认证方法如下。 ## 接口说明 * 请求地址:`/api/user/login` * 请求方法:POST * 提交方式:`multipart/form-data` ## 请求参数 | 参数名称 | 示例值 | 类型 | 是否必须 | 说明 | | ----------- | -------------------------------- | ---------- | -------- | ---------------------------------- | | username | xiaoz | string(16) | 是 | 用户名 | | password | xiaoz.me | string(16) | 是 | 密码 | ## 请求成功响应 ```json { "code": 200, "data": { "UserName": "xxx", "Cid": "JJjKWZ", "Token": "5de13ebfb0xxxxxx861fbe" }, "msg": "success" } ``` * `code`:200代表成功,其它为失败 * `msg`:消息内容 * `data.UserName`:返回用户名 * `data.Cid`:返回的ClientID,后续认证需要 * `data.Token`:返回的Token值,后续认证需要 **注意:Token认证有效期为7天,过期后请重新获取。** ## 请求失败响应 ```json { "code": -1000, "data": "", "msg": "用户名或密码错误!" } ``` ## 请求认证 需要认证的接口需要携带`header`头部,以下为公共头部参数: | 参数名称 | 示例值 | 类型 | 是否必须 | 说明 | | ----------- | -------------------------------- | ---------- | -------- | ---------------------------------- | | X-Cid | JJjKWZ | string(6) | 是 | CID,对应data.Cid | | X-Token | 5de13ebfb0xxxxxx861fbe | string(32) | 是 | Toekn,对应data.Token | # 获取文件列表 ## 接口说明 * 请求地址:/api/filelist * 请求方法:GET * 需要认证:否 ## 请求参数 | 参数名称 | 示例值 | 类型 | 是否必须 | 说明 | | ----------- | -------------------------------- | ---------- | -------- | ---------------------------------- | | path | /zdir | string | 是 | 需要获取的目录 | **注意:path参数需要以`/`开头** ## 请求成功 ```json { "code": 200, "data": [ { "Name": "3.0.0", "Size": 4096, "Mtime": "2022-10-18 12:48:35", "Ftype": "folder", "Fpath": "/zdir/3.0.0", "Ext": "", "Link": "http://soft.xiaoz.org/public%2Fzdir%2F3.0.0" }, { "Name": "sh", "Size": 4096, "Mtime": "2022-10-26 10:07:00", "Ftype": "folder", "Fpath": "/zdir/sh", "Ext": "", "Link": "http://soft.xiaoz.org/public%2Fzdir%2Fsh" }, { "Name": "zdir_3.1.0_linux_amd64.tar.gz", "Size": 4038550, "Mtime": "2022-10-25 19:55:10", "Ftype": "file", "Fpath": "/zdir/zdir_3.1.0_linux_amd64.tar.gz", "Ext": "gz", "Link": "http://soft.xiaoz.org/public%2Fzdir%2Fzdir_3.1.0_linux_amd64.tar.gz" }, { "Name": "zdir_3.1.0_windows_amd64.tar.gz", "Size": 11470456, "Mtime": "2022-10-25 20:17:29", "Ftype": "file", "Fpath": "/zdir/zdir_3.1.0_windows_amd64.tar.gz", "Ext": "gz", "Link": "http://soft.xiaoz.org/public%2Fzdir%2Fzdir_3.1.0_windows_amd64.tar.gz" } ], "msg": "success" } ``` ## 请求失败 ```json { "code": -1000, "data": "", "msg": "文件夹不存在!" } ``` # 获取单个文件信息 ## 接口说明 * 请求地址:`/api/get/fileinfo` * 请求方法:POST * 提交方式:`multipart/form-data` * 需要认证:否 ## 请求参数 | 参数名称 | 示例值 | 类型 | 是否必须 | 说明 | | ----------- | -------------------------------- | ---------- | -------- | ---------------------------------- | | fpath | /zdir/zdir_3.1.0_linux_amd64.tar.gz | string | 是 | 文件路径 | ## 请求成功响应 ```json { "code": 200, "data": { "Name": "zdir_3.1.0_linux_amd64.tar.gz", "Size": 4038550, "Mtime": "2022-10-25 19:55:10", "Fpath": "/zdir/zdir_3.1.0_linux_amd64.tar.gz", "Ext": "gz" }, "msg": "success" } ``` ## 请求失败响应 ```json { "code": -1000, "data": "", "msg": "只允许文件参数!" } ``` # 上传文件 ## 接口说明 * 请求地址:`/api/upload` * 请求方法:POST * 提交方式:`multipart/form-data` * 需要认证:是 ## 请求参数 公共Header头部: | 参数名称 | 示例值 | 类型 | 是否必须 | 说明 | | ----------- | -------------------------------- | ---------- | -------- | ---------------------------------- | | path | /zdir | string | 是 | Zdir文件路径 | | file | | file | 是 | 本地文件 | ## 请求成功响应 ```json { "code": 200, "data": "", "msg": "success" } ``` ## 请求失败响应 ```json { "code": -1000, "data": "", "msg": "文件夹不存在!" } ``` # 删除文件 ## 接口说明 * 请求地址:`/api/file/delete` * 请求方法:POST * 提交方式:`multipart/form-data` * 需要认证:是 ## 请求参数 | 参数名称 | 示例值 | 类型 | 是否必须 | 说明 | | ----------- | -------------------------------- | ---------- | -------- | ---------------------------------- | | fpath | /zdir/GPP_BenchMark.jpg | string | 是 | 文件路径 | ## 请求成功响应 ```json { "code": 200, "data": "", "msg": "success" } ``` ## 请求失败响应 ```json { "code": -1000, "data": "", "msg": "文件不存在!" } ``` # 重命名文件 ## 接口说明 * 请求地址:`/api/file/rename` * 请求方法:POST * 提交方式:`multipart/form-data` * 需要认证:是 ## 请求参数 公共Header头部: | 参数名称 | 示例值 | 类型 | 是否必须 | 说明 | | ----------- | -------------------------------- | ---------- | -------- | ---------------------------------- | | fpath | /zdir/ | string | 是 | 文件夹路径 | | old_name | ExampleRun.bat | string | 是 | 原来的名称 | | new_name | ExampleRun1.bat | string | 是 | 新的名称 | ## 请求成功响应 ```json { "code": 200, "data": "", "msg": "success" } ``` # 新建文件夹 ## 接口说明 * 请求地址:`/api/dir/create` * 请求方法:POST * 提交方式:`multipart/form-data` * 需要认证:是 ## 请求参数 | 参数名称 | 示例值 | 类型 | 是否必须 | 说明 | | ----------- | -------------------------------- | ---------- | -------- | ---------------------------------- | | path | /zdir | string | 是 | 父级文件夹路径 | | name | test | string | 是 | 文件夹名称 | ## 请求成功响应 ```json { "code": 200, "data": "", "msg": "success" } ``` # 卸载Zdir ## Linux卸载Zdir 如果是一键安装方式,可以通过下面的命令卸载: ```bash curl -s "http://soft.xiaoz.org/zdir/sh/zdir.sh" | bash -s uninstall ``` 手动卸载方式为: ```bash # 停止Zdir服务 systemctl stop zdir # 删除服务 rm -rf /etc/systemd/system/zdir.service systemctl daemon-reload ``` 最后根据自身需要是否删除Zdir安装目录。 ## Windows卸载Zdir 进入Zdir安装目录,鼠标右键 - 在终端打开。 ![](https://img.rss.ink/imgs/2022/10/15/58a408bf6b762ff5.png) 输入下面的命令,停止并卸载Zdir服务: ``` ./run.exe stop ./run.exe uninstall ``` 最后根据需要选择是否删除Zdir安装目录。 # 常见问题 Zdir3常见问题整理。 # 预览PDF文件时被下载工具接管 当您在使用Zdir 3预览PDF文件时,如果第三方下载工具,比如IDM自动弹出并下载PDF文件,导致在线预览失败,您可以通过以下方法将下载工具的接管关闭,从而保障PDF正常预览。 ### IDM关闭PDF自动下载 找到“IDM选项 - 文件类型 - 自动开始下载下列类型的文件 - 找到PDF,并将其删除 - 然后确定保存” ![](https://img.rss.ink/imgs/2023/01/12/fe7da29765f2dcd4.png) ### 其它下载工具 其它下载工具方法类似,请自行检查工具设置。 # 交流群 & 联系方式 ## 交流群 ### 微信交流群 ![](https://img.rss.ink/imgs/2023/03/26/00a244e0e59b0caf.png) ### QQ交流群 - 283604395 ### 联系作者 - QQ:446199062 - 微信 ![](https://img.rss.ink/imgs/2023/03/26/9d66a6f64b2f8354.png)