# sharefile **Repository Path**: sworker/sharefile ## Basic Information - **Project Name**: sharefile - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-08 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 局域网文件共享系统 一个简单、快速、安全的局域网文件共享系统,基于 Flask 构建。 ## ✨ 功能特性 - 📤 **文件上传** - 支持拖拽上传,单文件最大 5GB - 📥 **文件下载** - 一键下载,实时进度显示 - 🔍 **文件搜索** - 快速搜索文件名 - 👥 **共享空间** - 同一局域网内多用户共享文件池 - 🎨 **美观界面** - 现代化设计,简洁易用 - 🏷️ **上传者标识** - 区分"我上传"和"他人上传" - 🔒 **权限控制** - 只能删除自己上传的文件 - 🧹 **自动清理** - 自动清理过期文件 - ⚡ **高性能** - 支持大文件分片上传 - 🐳 **容器化** - 支持 Docker 部署 ## 🚀 快速开始 ### 方式一:直接运行(推荐) ```bash # 进入项目目录 cd file-transfer # 安装依赖 pip install flask gunicorn # 启动服务 python app.py # 或使用 Gunicorn (生产环境) gunicorn -c gunicorn.conf.py app:app ``` 访问 http://localhost:5000 ### 方式二:Docker 部署 ```bash # 构建并启动 docker-compose up -d # 查看日志 docker-compose logs -f ``` 访问 http://localhost:5000 ### 方式三:Supervisor 生产部署 ```bash # 复制配置 sudo cp supervisor.conf /etc/supervisor/conf.d/file-transfer.conf # 重启 Supervisor sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start file-transfer ``` ## 📁 项目结构 ``` file-transfer/ ├── app.py # Flask 主应用(共享空间逻辑) ├── config.py # 配置文件 ├── requirements.txt # Python 依赖 ├── gunicorn.conf.py # Gunicorn 配置 ├── nginx.conf # Nginx 配置 ├── supervisor.conf # Supervisor 配置 ├── Dockerfile # Docker 构建文件 ├── docker-compose.yml # Docker Compose 配置 ├── start.bat # Windows 启动脚本 ├── README.md # 说明文档 ├── static/ # 静态资源 │ ├── css/style.css # 样式文件 │ └── js/main.js # 前端脚本(用户标识、上传者识别) ├── templates/ │ └── index.html # 主页面 ├── uploads/ # 共享文件存储(所有用户) ├── temp/ # 临时分片存储 └── utils/ # 工具模块 └── cleanup.py # 清理任务 ``` ## 🔧 配置说明 ### 修改配置 (config.py) ```python # 上传文件大小限制 (默认 5GB) MAX_CONTENT_LENGTH = 5 * 1024 * 1024 * 1024 # 分片大小 (默认 5MB) CHUNK_SIZE = 5 * 1024 * 1024 # 文件清理策略 (默认 30 天) CLEANUP_DAYS = 30 # 允许的文件类型 ALLOWED_EXTENSIONS = {'pdf', 'png', 'jpg', 'zip', ...} ``` ### Nginx 部署 ```bash # 复制配置 (修改路径) sudo cp nginx.conf /etc/nginx/sites-available/file-transfer sudo ln -s /etc/nginx/sites-available/file-transfer /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx ``` ## 📱 局域网访问 服务启动后,同一局域网内的所有设备都可访问共享空间: ``` http://<你的IP地址>:5000 ``` 查看本机 IP: ```bash # Windows ipconfig # Linux/macOS ifconfig ``` **说明:** - 所有用户共享同一个文件空间 - 任何用户上传的文件都出现在共享列表中 - 只有上传者本人可以删除自己上传的文件 - 所有用户都可以下载共享空间中的文件 ## 🛠️ 高级配置 ### 使用 Gunicorn + Nginx (生产环境) ```bash # 启动 Gunicorn (4 workers) gunicorn -w 4 -b 127.0.0.1:5000 app:app # Nginx 反向代理 # 详见 nginx.conf ``` ### 后台清理任务 手动清理过期文件: ```bash python -c "from utils.cleanup import cleanup_all; print(f'Cleaned {cleanup_all()} items')" ``` 添加到 crontab (每天凌晨 3 点执行): ```bash 0 3 * * * cd /path/to/file-transfer && python -c "from utils.cleanup import cleanup_all; cleanup_all()" ``` ## 🔒 安全建议 1. **仅限局域网使用** - 系统设计用于可信的局域网环境 2. **定期清理** - 配置自动清理过期文件 3. **监控磁盘** - 关注磁盘使用情况 4. **访问控制** - 如需更严格的安全,请添加用户认证 ## 📦 依赖 ``` flask>=2.3.0 gunicorn>=21.0.0 ``` 可选: ``` gevent>=23.0.0 # 异步 worker (Docker 中已包含) ``` ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request!