Files
GameServerManager/docs/7z-support.md
2026-10-02 14:24:08 +08:00

4.9 KiB
Raw Blame History

7z 压缩格式支持说明

概述

项目在现有 Zip-Tools 集成基础上,新增了 7z(.7z)格式的压缩和解压支持。7z 格式以高压缩率著称,适合需要更小体积的场景。

与现有的 file_zip 工具不同,7z 功能由独立的 7z 二进制文件提供(来自 MCSManager/Zip-Tools 项目),是标准的 7-Zip 命令行工具,需要单独下载和管理。

支持的操作

操作 说明
压缩 将文件/文件夹压缩为 .7z 格式
解压 解压 .7z 格式的压缩包
在线部署 支持 .7z 格式的游戏服务端文件自动解压

使用方式

前端压缩

  1. 在文件管理器中选择需要压缩的文件或文件夹
  2. 右键菜单 → 压缩
  3. 在压缩格式下拉列表中选择 7Z (高压缩率)
  4. 点击确认开始压缩

注意:7z 格式不支持自定义压缩级别,选择 7z 格式时压缩级别选项会自动禁用。

前端解压

  1. 在文件管理器中找到 .7z 文件
  2. 右键菜单 → 解压
  3. 选择解压目标路径
  4. 点击确认开始解压

在线部署

在线部署模块已支持 .7z 格式的游戏服务端文件。系统会根据下载文件的扩展名自动选择解压方式:

  • .7z 文件 → 使用 7z 工具解压
  • .zip 文件 → 使用 file_zip 工具解压

无需额外配置,部署流程与之前一致。

7z 二进制文件管理

自动下载机制

服务端启动时会自动检测 7z 二进制文件是否存在:

  • 已存在:跳过下载,记录日志 7z 已就绪
  • 不存在:自动从 GitHub Releases 下载对应平台的二进制文件
  • 暂无内置资产的平台:尝试使用系统 7z 或 7zz 降级
  • 下载失败:记录警告日志但不阻塞服务启动,7z 相关功能降级为不可用

下载地址

运行时从 GitHub Releases 下载:

  • https://github.com/MCSManager/Zip-Tools/releases/latest/download/

存放位置

7z 二进制文件与 file_zip 存放在同一目录,使用多路径尝试策略查找:

  1. {项目根目录}/data/lib/ — 打包后环境
  2. {项目根目录}/server/data/lib/ — 开发环境

手动放置二进制文件(离线环境)

如果服务器无法访问外部网络,可以手动下载并放置二进制文件:

  1. 从 Zip-Tools Releases 下载对应平台的 7z 二进制文件
  2. 将文件放置到 server/data/lib/ 或 data/lib/ 目录下
  3. Linux/macOS 平台需要设置可执行权限:chmod 755 7z_linux_x64

支持的平台和架构

操作系统 CPU 架构 二进制文件名
Windows x64 7z_win32_x64.exe
Windows ARM64 7z_win32_arm64.exe
Linux x64 7z_linux_x64
Linux ARM64 7z_linux_arm64
Linux RISC-V64 暂无内置资产,使用系统 7z/7zz 降级
Linux ia32 7z_linux_386
Linux ARM 7z_linux_arm
macOS x64 7z_darwin_x64
macOS ARM64 7z_darwin_arm64

注意:7z 的命名规则与 file_zip 不同。file_zip 中 darwin/x64 映射为 amd64,而 7z 直接使用 x64。

打包和部署

打包脚本

打包脚本(scripts/package.js)在构建时会自动从 GitHub Releases 下载目标平台的 7z 二进制文件并内置到产物中,与 file_zip 的下载流程并列执行,确保用户部署后无需额外下载。

linux-riscv64 暂无内置 7z 资产,打包时会跳过该二进制。目标系统需要安装 7z 或 7zz 后才能使用 7z 压缩/解压功能。

Docker 镜像

Dockerfile 在构建阶段会根据目标架构(TARGETARCH)自动下载对应的 7z 二进制文件:

  • amd64 → 下载 7z_linux_x64
  • arm64 → 下载 7z_linux_arm64

下载后自动设置可执行权限(chmod 755),容器启动后 7z 功能开箱即用。

7z 命令行参数格式

7z 使用标准的 7-Zip 命令行参数,与 file_zip 的 -mode 参数格式完全不同:

解压

7z x {压缩包路径} -o{目标目录}

注意:-o 和目标目录之间没有空格,这是 7z 的标准格式。

压缩

7z a {输出文件路径} {文件1} {文件2} ...

注意事项

  1. 压缩级别:7z 压缩不支持通过命令行参数自定义压缩级别,使用默认压缩级别
  2. 下载失败不阻塞启动:7z 二进制文件下载失败不会阻止服务启动,仅 7z 相关功能不可用,其他功能正常运行
  3. 独立管理:7z 和 file_zip 的生命周期完全独立,互不影响。即使 7z 不可用,ZIP 格式的压缩解压仍正常工作
  4. 现有格式不受影响:ZIP、TAR、TAR.GZ、TAR.XZ 等现有格式的处理逻辑保持不变
  5. 文件格式识别:前端文件管理器已支持识别 .7z 文件为压缩文件,右键菜单会自动显示解压选项