# share_server **Repository Path**: jiang-xiaojian/share_server ## Basic Information - **Project Name**: share_server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-11 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文件分享服务器 一个简单易用的Python文件分享服务器,通过Web界面在局域网内共享文件。采用模块化设计,代码结构清晰。 ## 功能特点 - ✨ 简洁美观的Web界面 - 📁 支持共享单个文件或整个目录 - 🔄 自动获取局域网IP地址 - ⚡ 支持任意大小的文件下载 - 🎨 响应式设计,支持移动设备 - 🔒 路径安全检查,防止目录遍历攻击 - 🧩 模块化设计,代码结构清晰 ## 项目结构 ``` share_server/ ├── src/ # Python源代码目录 │ ├── main.py # 主程序入口 │ ├── config.py # 配置模块,处理命令行参数 │ ├── server.py # Web服务器模块 │ ├── network.py # 网络工具模块 │ ├── file_handler.py # 文件处理模块 │ └── test_modules.py # 测试脚本 ├── templates/ # HTML模板目录(独立存放) │ └── index.html # 主页模板 ├── run.py # 启动脚本 ├── requirements.txt # 依赖清单 └── README.md # 说明文档 ``` ### 模块说明 | 模块 | 功能 | |------|------| | `src/main.py` | 程序入口,协调各模块工作 | | `src/config.py` | 解析命令行参数,管理配置信息 | | `src/server.py` | Flask web服务器,处理HTTP请求 | | `src/network.py` | 提供网络工具函数(如获取局域网IP) | | `src/file_handler.py` | 文件操作相关功能(列表、格式化等) | | `templates/index.html` | 网页模板文件(独立存放) | | `src/test_modules.py` | 测试脚本,验证各模块功能 | | `run.py` | 启动脚本(自动配置路径) | ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 使用方法 ### 当前推荐启动方式 优先使用项目根目录下的 `start_server.ps1` 启动脚本。 示例: ```powershell .\start_server.ps1 -SharePath "C:\" -Port 8000 ``` 如果你想直接运行 Python,也可以使用: ```powershell python -u run.py "C:\" --port 8000 ``` 说明: - `start_server.ps1` 会在项目目录 `D:\share_server` 下后台启动服务。 - 当前默认监听端口是 `8000`。 - 默认会优先选择 `192.*` 的局域网地址作为访问地址。 - 访问地址会在启动后打印到终端中。 ### 基本用法 共享当前目录: ```bash python run.py ``` 共享指定文件或目录: ```bash python run.py /path/to/your/file_or_folder ``` ### 高级用法 指定IP地址和端口: ```bash python run.py C:/MyFileAudit/rt-thread-v5.1.0.zip --ip 192.168.0.57 --port 8080 ``` 查看帮助信息: ```bash python run.py --help ``` ## 命令行参数 | 参数 | 说明 | 默认值 | |------|------|--------| | `path` | 要共享的文件或目录路径 | 当前目录 (`.`) | | `--ip` | 服务器IP地址 | 自动获取局域网IP | | `--port` | 服务器端口 | 8000 | ## 使用示例 ### 示例1:共享当前目录 ```bash python run.py ``` 输出: ``` ============================================================ 🚀 文件分享服务器启动成功! ============================================================ 📂 共享路径: C:\Users\YourName\Documents 🌐 访问地址: http://192.168.1.100:8000 📱 局域网内其他设备可通过该地址访问 ============================================================ 按 Ctrl+C 停止服务器 ``` ### 示例2:共享特定文件 ```bash python run.py document.pdf --port 9000 ``` ### 示例3:共享指定目录 ```bash python run.py "C:\Users\Documents\Photos" ``` ## 访问方式 启动服务器后: 1. 在同一局域网内的任何设备上打开浏览器 2. 访问显示的地址(如 `http://192.168.1.100:8000`) 3. 在Web界面中查看文件列表 4. 点击文件即可下载 ## 模块化设计优势 - **可维护性**:每个模块职责单一,易于理解和修改 - **可扩展性**:新增功能只需添加或修改对应模块 - **可测试性**:各模块可独立测试 - **代码复用**:模块可在其他项目中复用 ## 测试 项目包含完整的测试脚本,用于验证所有模块的可用性。 ### 运行测试 ```bash cd src python test_modules.py ``` ### 测试覆盖 测试脚本会检查以下模块: - **网络模块**:局域网IP地址获取功能 - **文件处理模块**:文件大小格式化、图标映射、文件列表、路径安全检查 - **配置模块**:命令行参数解析、配置验证 - **模板文件**:HTML模板存在性和完整性 - **服务器模块**:Flask应用初始化、路由配置 测试通过示例: ``` ============================================================ 文件分享服务器 - 完整性测试 ============================================================ ... [OK] 网络模块 [OK] 文件处理模块 [OK] 配置模块 [OK] 模板文件 [OK] 服务器模块 总计: 5/5 个模块测试通过 [SUCCESS] 所有测试通过!代码可用性已验证。 ``` ## 安全提示 ⚠️ **注意**: - 本程序设计用于局域网内临时文件分享 - 请勿在公网环境使用,以免造成安全隐患 - 确保只共享你想要公开的文件 - 使用完毕后请及时关闭服务器(Ctrl+C) ## 技术栈 - Python 3.x - Flask 3.0.0 - HTML5/CSS3 ## 系统要求 - Python 3.6 或更高版本 - Windows / macOS / Linux ## 常见问题 **Q: 为什么其他设备无法访问?** A: 请检查防火墙设置,确保允许相应端口的入站连接。 **Q: 如何在外网访问?** A: 本程序设计用于局域网,不建议在外网使用。如有需要,请配置路由器端口转发并考虑安全措施。 **Q: 支持哪些文件类型?** A: 支持所有文件类型,文件大小无限制。 **Q: 可以同时下载吗?** A: 可以,Flask支持并发请求。 **Q: 如何修改界面样式?** A: 编辑 `templates.py` 中的 HTML_TEMPLATE 即可。 **Q: 如何添加新功能?** A: 根据功能类型,在相应模块中添加代码,或创建新模块。 ## 许可证 MIT License