一个基于 FastAPI 构建的简单、快速、安全可靠的文件传输服务,支持取件码/删除码机制、文件广场、IP访问控制和管理后台。
目前版本:0.1.0, 功能初步实现,还在优化中(目前没有做 移动端适配,ipad 和 PC端大屏可用)
项目主体参照 IM-Share (from吾爱)(感谢分享) 本版相比 IM 版,修改为 FastAPI 框架(原 flask),重构了前端交互,增加一些小 featrue
- 加 文件广场功能
- 加 音视频预览功能(mp4,mp3)
- 🚀 快速上传:简单直观的文件上传界面
- 🔐 双重保护:取件码下载 + 删除码管理
- 🔍 文件预览:支持图片、音频、视频预览
- 🌐 文件广场:公开分享文件到广场浏览(初步实现)
- 🛡️ IP控制: 黑白名单IP访问控制
- 📊 管理后台:系统管理功能
- ⚡ 自动清理:过期文件自动清理
git clone https://github.com/fun-tailor/q-share.git
cd q-share先决条件:需要操作系统已安装 Python
pip install -r requirements.txt或手动安装:
pip install fastapi uvicorn[standard] sqlalchemy python-jose apschedulerpython run.py或者鼠标双击 run.py 或者 GUI版本 run_gui.py
- 🌐 首页:http://localhost:5000
- 📚 API文档:http://localhost:5000/docs (# 加载受cds网络影响)
- OpenAPI 规范文件:http://localhost:5000/openapi.json
- 管理后台:首页集成
- 默认密码:
admin123
- 默认密码:
im-share/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI应用主入口
│ ├── config.py # 配置管理
│ ├── database.py # 数据库配置
│ ├── models.py # 数据模型
│ ├── schemas.py # Pydantic模型
│ ├── dependencies.py # 依赖项和中间件
│ ├── security.py # 安全工具函数
│ ├── routes/
│ │ ├── __init__.py
│ │ ├── upload.py # 上传路由
│ │ ├── download.py # 下载路由
│ │ ├── admin.py # 管理路由
│ │ └── api.py # API路由
│ └── services/
│ ├── __init__.py
│ ├── file_service.py # 文件服务
│ ├── ip_service.py # IP控制服务
│ ├── session_service.py # 会话服务
│ └── cleanup_service.py # 清理服务
├── templates/ # Jinja2模板
│ ├── index.html # 首页
│ ├── admin.html # 管理页面
│ ├── admin_login.html # 管理登录页面
│ └── admin_ip.html # IP控制页面
├── static/ # 静态文件
│ ├── css/
│ ├── js/
│ └── img/
├── uploads/ # 上传文件存储
├── run.py # 启动脚本
├── run_gui.py # 启动脚本(GUI版)
├── files.db # SQLite数据库(自动生成)
└── README.md # 本文档
默认支持:jpg, jpeg, png, gif, pdf, doc, docx, xls, xlsx, ppt, pptx, txt, zip, rar, mp4, mp3, md, html
- ✅ 文件广场展示
- ✅ 过期自动清理
- ✅ 下载次数限制
- ✅ 文件预览功能(限 mp4,mp3)
- 移动端适配
- 桌面客户端
-
端口被占用
# 修改端口 python run.py --port 8080 -
数据库错误
# 删除旧数据库重新初始化 rm files.db python run.py -
上传失败
- 检查上传目录权限:
chmod 755 uploads - 检查磁盘空间:
df -h
- 检查上传目录权限:
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建功能分支:
git checkout -b feature/新功能 - 提交更改:
git commit -m '添加新功能' - 推送到分支:
git push origin feature/新功能 - 提交 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
感谢以下项目:
- IM-Share - 启发了简单的文件分享理念
快乐分享,安全传输! 🚀
⚠️ 注意:请勿上传敏感或违法内容。系统会自动清理过期文件,但不保证长期存储。