From 7e5ecf79b49314fa3b916d2abc70c8c13affe5e3 Mon Sep 17 00:00:00 2001 From: jingrow Date: Wed, 29 Oct 2025 14:37:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=AE=89=E8=A3=85=E5=8C=85?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8F=98=E6=9B=B4=E4=B8=BAzip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jingrow/utils/export_app_package.py | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/apps/jingrow/jingrow/utils/export_app_package.py b/apps/jingrow/jingrow/utils/export_app_package.py index 099b235..db08c0e 100644 --- a/apps/jingrow/jingrow/utils/export_app_package.py +++ b/apps/jingrow/jingrow/utils/export_app_package.py @@ -2,7 +2,6 @@ 导出应用安装包功能 """ from pathlib import Path -import subprocess import shutil from datetime import datetime @@ -44,18 +43,15 @@ def export_app_package_from_local(app_name: str, apps_dir: Path): else: shutil.copy2(item, dst) - # 打包 - final_filename = f"{app_name}-{timestamp}.tar.gz" - tmp_tar = tmp_dir / final_filename - - subprocess.check_output( - ["tar", "czf", str(tmp_tar), app_name], - cwd=str(tmp_dir) - ) + # 打包为 ZIP + final_filename = f"{app_name}-{timestamp}.zip" + base_name = tmp_dir / f"{app_name}-{timestamp}" + # 生成 {base_name}.zip,压缩 tmp_dir 下的 app_name 目录 + shutil.make_archive(str(base_name), 'zip', root_dir=str(tmp_dir), base_dir=app_name) # 移动到 files 目录 - final_tar = files_dir / final_filename - shutil.move(str(tmp_tar), str(final_tar)) + final_zip_path = files_dir / final_filename + shutil.move(str(base_name) + ".zip", str(final_zip_path)) # 清理临时目录 shutil.rmtree(final_dir, ignore_errors=True) @@ -63,6 +59,6 @@ def export_app_package_from_local(app_name: str, apps_dir: Path): return { "success": True, "filename": final_filename, - "file_path": str(final_tar), - "message": f"应用安装包已导出到: {final_tar}" + "file_path": str(final_zip_path), + "message": f"应用安装包已导出到: {final_zip_path}" }