Skip to content

fun-tailor/q-share

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Q-Share - 文件传输服务

一个基于 FastAPI 构建的简单、快速、安全可靠的文件传输服务,支持取件码/删除码机制、文件广场、IP访问控制和管理后台。

FastAPIPythonSQLite

目前版本:0.1.0, 功能初步实现,还在优化中(目前没有做 移动端适配,ipad 和 PC端大屏可用)

项目主体参照 IM-Share (from吾爱)(感谢分享) 本版相比 IM 版,修改为 FastAPI 框架(原 flask),重构了前端交互,增加一些小 featrue

  • 加 文件广场功能
  • 加 音视频预览功能(mp4,mp3)

✨ 特性

  • 🚀 快速上传:简单直观的文件上传界面
  • 🔐 双重保护:取件码下载 + 删除码管理
  • 🔍 文件预览:支持图片、音频、视频预览
  • 🌐 文件广场:公开分享文件到广场浏览(初步实现)
  • 🛡️ IP控制: 黑白名单IP访问控制
  • 📊 管理后台:系统管理功能
  • 自动清理:过期文件自动清理

🚀 快速开始

1. 克隆项目(或直接下载 zip 解压)

git clone https://github.com/fun-tailor/q-share.git
cd q-share

2. 安装依赖

先决条件:需要操作系统已安装 Python

pip install -r requirements.txt

或手动安装:

pip install fastapi uvicorn[standard] sqlalchemy python-jose apscheduler

3. 启动服务

python run.py

或者鼠标双击 run.py 或者 GUI版本 run_gui.py

4. 访问应用

📸 软件界面

管理页面

管理后台

上传页面

上传页面

📁 项目目录结构

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

功能(feature)

  • ✅ 文件广场展示
  • ✅ 过期自动清理
  • ✅ 下载次数限制
  • ✅ 文件预览功能(限 mp4,mp3)

🗺️ Roadmap

v0.2.0 (近期计划)

  • 移动端适配
  • 桌面客户端

🐛 故障排除

常见问题

  1. 端口被占用

    # 修改端口
    python run.py --port 8080
  2. 数据库错误

    # 删除旧数据库重新初始化
    rm files.db
    python run.py
  3. 上传失败

    • 检查上传目录权限:chmod 755 uploads
    • 检查磁盘空间:df -h

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建功能分支:git checkout -b feature/新功能
  3. 提交更改:git commit -m '添加新功能'
  4. 推送到分支:git push origin feature/新功能
  5. 提交 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

感谢以下项目:

  • IM-Share - 启发了简单的文件分享理念

快乐分享,安全传输! 🚀

⚠️ 注意:请勿上传敏感或违法内容。系统会自动清理过期文件,但不保证长期存储。

About

a simple file share service

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors