# isp_patchmgr **Repository Path**: fightx/isp_patchmgr ## Basic Information - **Project Name**: isp_patchmgr - **Description**: 这是用友ISP补丁下载器的Web版本,通过华为AI工具,将原有的桌面应用程序重构而来。该应用程序允许用户搜索、下载和解密用友ISP平台的补丁文件。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-12 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 用友ISP补丁下载器 - Web版 这是用友ISP补丁下载器的Web版本,基于原有的桌面应用程序重构而来。该应用程序允许用户搜索、下载和解密用友ISP平台的补丁文件。 ## 项目结构 ``` web_app/ ├── app.py # 主应用入口点 ├── config.py # 配置管理模块 ├── static/ # 静态资源 │ ├── css/ # CSS样式文件 │ │ └── style.css # 主样式表 │ ├── js/ # JavaScript文件 │ │ └── main.js # 主JS文件 │ └── favicon.ico # 网站图标 ├── templates/ # HTML模板 │ ├── base.html # 基础模板 │ ├── index.html # 主页模板 │ └── results.html # 搜索结果模板 ├── modules/ # 功能模块 │ ├── __init__.py # 包初始化文件 │ ├── auth.py # 认证模块 │ ├── search.py # 搜索模块 │ ├── download.py # 下载模块 │ └── decrypt.py # 解密模块 └── utils/ # 工具函数 ├── __init__.py # 包初始化文件 ├── logger.py # 日志工具 └── helpers.py # 辅助函数 ``` ## 技术栈 - **后端框架**: Flask - **前端**: HTML5, CSS3, JavaScript (可选择性使用Bootstrap或其他前端框架) - **HTTP客户端**: Requests - **并发处理**: 使用Flask的后台任务或Celery - **日志**: Python标准库logging ## 功能模块 ### 配置管理 (config.py) - 加载和管理配置信息 - 提供安全的凭据存储机制 ### 认证模块 (modules/auth.py) - 处理用友ISP平台的登录流程 - 管理会话和凭据 ### 搜索模块 (modules/search.py) - 实现补丁搜索功能 - 处理分页和结果展示 ### 下载模块 (modules/download.py) - 处理补丁下载逻辑 - 管理下载状态和进度 ### 解密模块 (modules/decrypt.py) - 提供补丁解密功能 - 管理Java解密工具的调用 ### 日志工具 (utils/logger.py) - 配置应用程序日志 - 提供不同级别的日志记录功能 ### 辅助函数 (utils/helpers.py) - 提供通用的辅助函数 - 处理文件操作、路径管理等 ## 安装和运行 1. 安装依赖: ``` pip install -r requirements.txt ``` 2. 配置应用: - 复制`config.json.example`到`config.json` - 编辑`config.json`填入必要的配置信息 3. 运行应用: ``` python app.py ``` 4. 在浏览器中访问: ``` http://localhost:5000 ``` ## 注意事项 - 该应用需要Java环境来运行解密工具 - 请确保配置文件中的路径设置正确 - 登录凭据存储在配置文件中,请注意安全性 # Debian部署方案 将这个 Flask Web 应用部署到 Debian 服务器上,代码本身基本不需要修改,因为使用了 `os.path` 等跨平台库。主要的注意事项和需要调整的地方在于环境配置和部署方式: 1. **配置文件 (`config.py` / `config.json`)**: * **路径修改**: 配置文件中涉及的所有路径(特别是 `[Paths]` 部分下的 `Java`, `DecryptJar`, `DefaultDownload`)**必须**修改为 Debian 服务器上的实际有效路径。例如,`java_path` 可能需要指向 `/usr/bin/java`,`decrypt_jar` 可能在 `/opt/isp_patchmgr/decrypt.jar`,下载目录 `DefaultDownload` 可能设为 `/var/www/isp_patchmgr/downloads` 或其他你有权限的目录。 * **Windows 盘符**: 确保配置文件或代码中没有任何硬编码的 Windows 盘符(如 `d:`)。 2. **依赖安装**: * **Python 依赖**: 在 Debian 服务器上,需要使用 `pip` 安装 中列出的所有 Python 包。建议在虚拟环境中进行: ```bash sudo apt update sudo apt install python3 python3-pip python3-venv # 确保基础环境 python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` * **Java 环境**: 解密功能依赖 Java。需要在服务器上安装 Java 运行环境: ```bash sudo apt update sudo apt install default-jre # 或者安装指定的 Java 版本 ``` * **解密 JAR**: 需要将解密用的 `.jar` 文件(在 `config.py` 中由 `DecryptJar` 指定)复制到 Debian 服务器上,并确保配置文件中的路径指向它。 3. **部署方式 (重要)**: * **不要使用 Flask 开发服务器**: `flask run` 或 `app.run()` 只适用于开发,性能和安全性不足以用于生产环境。 * **使用 WSGI 服务器**: 推荐使用 Gunicorn 或 uWSGI 来运行 Flask 应用。例如,使用 Gunicorn: ```bash pip install gunicorn gunicorn --workers 4 --bind 0.0.0.0:8000 app:app # 假设你的 Flask app 实例在 app.py 中叫 app gunicorn -w 4 -b 0.0.0.0:9528 app:app nohup gunicorn -w 4 -b 0.0.0.0:9528 app:app & ``` * **使用反向代理**: 在 WSGI 服务器前配置 Nginx 或 Apache 作为反向代理。这可以处理静态文件服务、负载均衡、HTTPS 加密等。Nginx 配置示例片段: ```nginx server { listen 80; server_name your_domain.com; # 或者服务器 IP location /static { alias /path/to/your/web_app/static; # Nginx 直接服务静态文件 } location / { proxy_pass http://127.0.0.1:8000; # 转发给 Gunicorn proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` * **进程管理**: 使用 Systemd 或 Supervisor 来管理 Gunicorn/uWSGI 进程,确保应用能在后台运行,并在失败时自动重启。 4. **文件权限**: * 确保运行 WSGI 服务器的用户(通常是一个专门的用户,如 `www-data`)对下载目录 (`DefaultDownload`) 有**读写权限**。 * 确保该用户对 Java 可执行文件和解密 `.jar` 文件有**读取和执行权限**。 5. **防火墙**: 确保服务器的防火墙允许访问你配置的端口(通常是 Nginx/Apache 监听的 80 或 443 端口)。 总结来说,代码层面改动很小(主要是确认无硬编码路径),工作量主要在服务器环境配置、依赖安装和选择合适的生产部署方案上。 # 青龙面板部署 要将此应用部署到青龙面板,请参阅 [QINGLONG_DEPLOY.md](file:///D:/Documents/%E7%99%BE%E5%BA%A6%E4%BA%91/ERP/U8/98%E5%AE%9E%E6%96%BD%E5%B7%A5%E5%85%B7/NCSQL/%E4%BC%81%E4%B8%9A%E5%BB%BA%E6%A8%A1%E5%B9%B3%E5%8F%B0/%E9%97%A8%E6%88%B7/IKM%E7%AE%A1%E7%90%86/DSP_ISM/isp_patchmgr/web_app/QINGLONG_DEPLOY.md) 文件了解更多详情。 # 使用说明 gunicorn -w 4 -b 0.0.0.0:9528 app:app nohup gunicorn -w 4 -b 0.0.0.0:9528 app:app &