# 基于Python的文件共享系统 **Repository Path**: zhirong-cloud/python-upload-serve ## Basic Information - **Project Name**: 基于Python的文件共享系统 - **Description**: 分片上传、文件目录管理、剪贴板共享 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-18 - **Last Updated**: 2026-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文件管理与上传系统 ![分片上传](%E6%88%AA%E5%9B%BE/%E5%88%86%E7%89%87%E4%B8%8A%E4%BC%A0.png) ![共享剪贴板](%E6%88%AA%E5%9B%BE/%E5%85%B1%E4%BA%AB%E5%89%AA%E8%B4%B4%E6%9D%BF.png) ## 项目介绍 一个基于Flask和Vue.js的文件管理与上传系统,支持分片上传、文件管理、IP白名单控制等功能。系统采用前后端分离架构,前端使用Vue.js和Element UI构建,后端使用Flask提供API服务。 ## 功能特性 ### 📁 文件管理 - 支持文件夹创建和管理 - 文件上传、下载和删除 - 多级目录浏览 - 文件搜索和类型筛选 ### 🚀 分片上传 - 大文件自动分片上传(3MB/片) - 并发分片上传(最大3个并发) - 分片进度实时显示 - 文件完整性验证(大小和MD5) ### 🔒 安全控制 - IP白名单访问控制 - 支持IP地址通配符 ### 📊 系统监控 - 在线用户统计 - 上传进度实时显示 - 系统日志记录 ### 📋 其他功能 - 剪贴板内容共享 - 远程服务器批量升级 - 下载计数统计 ## 技术栈 ### 后端 - Python 3.x - Flask - Paramiko (SSH远程执行) - Hashlib (MD5校验) ### 前端 - Vue.js 2.x - Element UI - Axios (HTTP请求) - SparkMD5 (前端MD5计算) ## 项目结构 ``` /Library/WorkSpace/python-upload-serve/ ├── uploads/ # 上传文件存储目录 │ └── page/ # 前端静态文件 │ ├── assets/ # 静态资源 │ ├── index.html # 主页面 │ ├── index.js # 前端逻辑 │ ├── config.json # 系统配置 │ └── filev.json # 剪贴板内容 ├── url_serve.py # 后端主程序 ├── tool.py # 工具函数 ├── README.md # 项目说明 └── LICENSE # 许可证 ``` ## 安装与运行 ### 1. 依赖安装 ```bash pip install flask paramiko ``` ### 2. 配置文件 系统配置文件位于 `uploads/page/config.json`,包含以下配置项: - `whitelist`: IP白名单列表 - `download_counts`: 文件下载计数 ### 3. 启动服务 ```bash python url_serve.py ``` 服务默认运行在 `http://0.0.0.0:35000` ## 使用说明 ### 文件上传 1. 点击页面右上角的"拖拽上传"按钮,或直接拖拽文件到页面 2. 在弹出的上传对话框中查看上传进度 3. 上传完成后系统会自动验证文件完整性 4. 验证成功的文件会显示在当前目录中 ### 文件管理 1. 在左侧导航栏选择"文件管理" 2. 点击文件夹进入子目录 3. 使用"返回上一级"按钮回到父目录 4. 点击文件名下载文件 5. 选中文件后点击"批量删除"按钮删除文件 ### 文件夹操作 1. 点击"创建文件夹"按钮 2. 输入文件夹名称 3. 点击"确定"按钮创建文件夹 ### 系统配置 1. 编辑 `uploads/page/config.json` 文件 2. 在 `whitelist` 数组中添加允许访问的IP地址 3. 支持通配符,如 `192.168.1.*` ## 高级功能 ### 分片上传原理 1. 前端将文件分割成3MB大小的分片 2. 并发上传多个分片到服务器 3. 服务器接收分片并保存为临时文件 4. 所有分片上传完成后,服务器将分片合并为完整文件 5. 合并完成后验证文件完整性 ### 远程服务器升级 系统支持通过SSH远程执行命令,可用于批量升级服务器。具体功能在 `tool.py` 中实现。 ## 常见问题 ### 1. 上传大文件失败 - 检查服务器磁盘空间是否充足 - 检查网络连接是否稳定 - 尝试使用较小的文件进行测试 ### 2. IP被拒绝访问 - 检查客户端IP是否在白名单中 - 编辑 `config.json` 文件添加IP地址 ### 3. 分片上传进度显示异常 - 刷新页面后重新尝试上传 - 检查浏览器控制台是否有错误信息 ### 4. 文件验证失败 - 检查文件是否完整 - 尝试重新上传文件 - 检查网络连接是否稳定 ## 性能优化 1. **分片上传**:减少单文件上传失败的概率,提高大文件上传成功率 2. **并发上传**:最多3个分片同时上传,提高上传速度 3. **MD5校验**:仅在文件合并后进行MD5校验,减少上传过程中的计算开销 4. **IP白名单**:限制访问来源,提高系统安全性 ## 许可证 本项目采用 MIT 许可证,详见 LICENSE 文件。 ## 更新日志 - **2026-01-26**:修复分片进度显示问题,支持多后缀文件名 - **2026-01-22**:优化上传进度显示,添加在线用户统计 - **2026-01-20**:实现分片上传和文件完整性验证 - **2026-01-15**:初始版本发布,支持基本文件管理功能 ## 技术支持 如有任何问题或建议,欢迎提交Issue或联系开发者。