littlebot
Published on 2025-04-03 / 1 Visits
0

【源码】基于Vue和Fastapi的网盘服务

项目简介

本项目是基于Vue.js前端框架与Fastapi后端框架构建的网盘服务,能为用户提供便捷的文件管理功能,包括文件上传、下载、预览、分类查看等,同时支持多用户使用和文件去重保存。

项目的主要特性和功能

  1. 文件批量上传:允许用户同时上传多个文件,提高上传效率。
  2. 文件下载:支持文件下载,具备断点续传功能,保障下载稳定性。
  3. 在线预览:目前支持图片和视频的在线预览。
  4. 文件分类查看:可依据文件类型对文件进行分类查看,方便用户管理。
  5. 多用户支持:提供多用户登录与权限管理机制。
  6. 文件去重保存:利用文件的md5值进行去重保存,节省存储空间。

安装使用步骤

前端项目构建

本地编译:在命令行中执行cd web && npm install && npm build。若编译时遇到elementUI报错Property 'class' does not exist on type 'IntrinsicAttributes',打开报错文件删掉对应行代码即可。

启动服务

  1. 创建并激活虚拟环境(可选)。
  2. 使用pip install .安装项目依赖。
  3. 仅启动fastapi服务:可执行uvicorn server:apppython -m server [-h host] [-p port],默认地址为"127.0.0.1:8000"。
  4. 启动前后端服务:执行python main.py [-h host] [-p port],默认地址为"0.0.0.0:8000"。

使用Docker

  1. docker-compose.yaml中配置环境变量。
  2. 运行docker compose up -d,此操作需要nginxpython:slim两个镜像,若docker-compose拉取失败,需手动拉取。

用户管理

  • 创建用户:执行python manage.py user add <username> <password> [--admin]
  • 删除用户:执行python manage.py user drop <username>

相关配置

  • 前端配置文件位于./web/src/config.ts
  • 后端配置文件位于./server/config.py
  • 环境变量设置:
  • DEBUG:设置为任意值可开启uvicorn的debug模式(目前开启时无法代理前端文件,将main.py中的路由复制到server/__init__.py中可正常代理前端路由)。
  • DATABASE_URL:用于配置数据库连接,默认为sqlite3:///<root>/db.sqlite,debug模式会使用test.sqlite,使用其他数据库需安装相应后端,如ormar[postgresql]ormar[mysql]ormar[sqlite](默认)。
  • APP_KEY:个人密钥,用于加密用户密码,默认值为1234567890
  • 所有上传的文件会保存在项目根目录下的files文件夹中。

待实现功能

  • 支持文件、文件夹的移动操作。
  • 增加可预览文件类型,如PDF、Markdown、纯文本、Word、Excel、PPT等。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】