mirror of
https://github.com/GSManagerXZ/GameServerManager.git
synced 2026-05-15 18:29:23 +08:00
4.8 KiB
4.8 KiB
7z 压缩格式支持说明
概述
项目在现有 Zip-Tools 集成基础上,新增了 7z(.7z)格式的压缩和解压支持。7z 格式以高压缩率著称,适合需要更小体积的场景。
与现有的 file_zip 工具不同,7z 功能由独立的 7z 二进制文件提供(来自 MCSManager/Zip-Tools 项目),是标准的 7-Zip 命令行工具,需要单独下载和管理。
支持的操作
| 操作 | 说明 |
|---|---|
| 压缩 | 将文件/文件夹压缩为 .7z 格式 |
| 解压 | 解压 .7z 格式的压缩包 |
| 在线部署 | 支持 .7z 格式的游戏服务端文件自动解压 |
使用方式
前端压缩
- 在文件管理器中选择需要压缩的文件或文件夹
- 右键菜单 → 压缩
- 在压缩格式下拉列表中选择 7Z (高压缩率)
- 点击确认开始压缩
注意:7z 格式不支持自定义压缩级别,选择 7z 格式时压缩级别选项会自动禁用。
前端解压
- 在文件管理器中找到
.7z文件 - 右键菜单 → 解压
- 选择解压目标路径
- 点击确认开始解压
在线部署
在线部署模块已支持 .7z 格式的游戏服务端文件。系统会根据下载文件的扩展名自动选择解压方式:
.7z文件 → 使用 7z 工具解压.zip文件 → 使用 file_zip 工具解压
无需额外配置,部署流程与之前一致。
7z 二进制文件管理
自动下载机制
服务端启动时会自动检测 7z 二进制文件是否存在:
- 已存在:跳过下载,记录日志
7z 已就绪 - 不存在:自动下载对应平台的二进制文件(双源策略)
- 下载失败:记录警告日志但不阻塞服务启动,7z 相关功能降级为不可用
下载源优先级
- 自建镜像(主):优先从自建镜像下载(国内加速)
- GitHub Releases(备用):
https://github.com/MCSManager/Zip-Tools/releases/latest/download/
运行时优先从自建镜像下载,失败后自动回退到 GitHub Releases。
存放位置
7z 二进制文件与 file_zip 存放在同一目录,使用多路径尝试策略查找:
{项目根目录}/data/lib/— 打包后环境{项目根目录}/server/data/lib/— 开发环境
手动放置二进制文件(离线环境)
如果服务器无法访问外部网络,可以手动下载并放置二进制文件:
- 从 Zip-Tools Releases 下载对应平台的 7z 二进制文件
- 将文件放置到
server/data/lib/或data/lib/目录下 - 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 | 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 的下载流程并列执行,确保用户部署后无需额外下载。
Docker 镜像
Dockerfile 在构建阶段会根据目标架构(TARGETARCH)自动下载对应的 7z 二进制文件:
amd64→ 下载7z_linux_x64arm64→ 下载7z_linux_arm64
下载后自动设置可执行权限(chmod 755),容器启动后 7z 功能开箱即用。
7z 命令行参数格式
7z 使用标准的 7-Zip 命令行参数,与 file_zip 的 -mode 参数格式完全不同:
解压
7z x {压缩包路径} -o{目标目录}
注意:
-o和目标目录之间没有空格,这是 7z 的标准格式。
压缩
7z a {输出文件路径} {文件1} {文件2} ...
注意事项
- 压缩级别:7z 压缩不支持通过命令行参数自定义压缩级别,使用默认压缩级别
- 下载失败不阻塞启动:7z 二进制文件下载失败不会阻止服务启动,仅 7z 相关功能不可用,其他功能正常运行
- 独立管理:7z 和 file_zip 的生命周期完全独立,互不影响。即使 7z 不可用,ZIP 格式的压缩解压仍正常工作
- 现有格式不受影响:ZIP、TAR、TAR.GZ、TAR.XZ 等现有格式的处理逻辑保持不变
- 文件格式识别:前端文件管理器已支持识别
.7z文件为压缩文件,右键菜单会自动显示解压选项