Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

L-NetDisk AI

基于 React + Vite(前端)和 FastAPI + SQLite(后端)的网盘系统,首期包含网盘基础功能与 AI 检索问答能力。

目录

  • frontend/:Web 前端(PC/移动端响应式)
  • backend/:后端 API 与 SQLite 数据层
  • docker-compose.yml:一键本地联调

快速启动

后端

cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload

前端

cd frontend
npm install
npm run dev

Docker

docker compose up

已实现 API(MVP)

  • 认证:注册、登录
  • 文件:获取列表、新建文件夹、上传文件、上传文件夹、文件下载元数据、文件夹下载打包任务
  • 传输:秒传、分片上传初始化、断点续传状态查询
  • 传输增强:分片上传(part/complete)、缺片校验、过期会话清理
  • 分享:创建分享、我的分享、分享码提取
  • 预览:文本预览、视频预览入口
  • 视频流:支持 Range 分片请求,非视频 MIME 拒绝访问
  • 同步:增量变更拉取
  • 多地登录:设备会话列表
  • AI:文件名语义检索(首版)、问答接口占位(预留 DeepSeek 对接)
  • 前端上传中心:支持普通上传、文件夹上传、分片上传、分片状态查询、断点补传、失败自动重试、会话过期重建、任务取消、任务历史(清空/过滤/导出 JSON)、分片重试计数展示、上传耗时、瞬时速率、滑动平均速率、失败原因统计与后端健康检查卡片

安全与限制(当前版本)

  • 单文件上传大小限制:5MB(超限返回 413)
  • 分片上传校验:chunk_index 越界、分片大小超限将返回 400
  • AI 问答限流:每用户每分钟最多 5 次(超限返回 429)

以上限制可通过后端环境变量覆盖:

  • MAX_UPLOAD_FILE_SIZE(默认 5242880)
  • RATE_LIMIT_WINDOW_SECONDS(默认 60)
  • RATE_LIMIT_MAX_REQUESTS(默认 5)

环境变量模板

  • 后端模板:backend/.env.example
  • 前端模板:frontend/.env.example

5分钟本地验收流程

  1. 启动后端
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload
  1. 启动前端
cd frontend
npm install
npm run dev
  1. 运行后端 smoke test(无需手工点接口)
python scripts/smoke_test.py
  1. 运行前端测试与构建
cd frontend
npm run test
npm run build

快捷命令(Makefile)

make help
make smoke
make fe-test
make fe-build
make all

其他文档

  • 版本变更:CHANGELOG.md
  • Demo 清单:docs/demo-checklist.md
  • 发布说明:docs/release-notes.md
  • 演示讲稿:docs/demo-script-5min.md
  • 非技术公告:docs/release-announcement-nontech.md
  • 发布执行手册:docs/release-day-runbook.md
  • 群公告模板:docs/release-announcement-chat.md
  • 主持词:docs/release-host-script-2min.md
  • 常见问题:docs/release-faq.md
  • 提交前检查:docs/final-pre-submit-checklist.md

命令行(CLI)快速使用

后端新增了 lnet_cli.py,可在 shell 中直接完成主要网盘操作(登录、列文件、上传、删除、分享、AI问答、AI规划执行)。

cd backend
python lnet_cli.py login -u alice -p 12345678
python lnet_cli.py ls
python lnet_cli.py put "./demo.txt"
python lnet_cli.py cp "./demo.txt" --parent-id 3
python lnet_cli.py get 12 -o "./downloaded-demo.txt"
python lnet_cli.py mv 12 3
python lnet_cli.py find "合同"
python lnet_cli.py share 12 --hours 24
python lnet_cli.py ask "最近上传了什么文件?"
python lnet_cli.py agent "把 demo.txt 分享出去,有效期 24 小时" --dry-run
python lnet_cli.py agent "把 demo.txt 分享出去,有效期 24 小时" --confirm-each
python lnet_cli.py sh "把最近上传的文件分享出去" --dry-run

执行 AI 规划命令前,需要在后端环境中配置 DeepSeek:

set DEEPSEEK_API_KEY=your_new_key
set DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
set DEEPSEEK_MODEL=deepseek-chat

agent 命令支持执行保护:

  • --dry-run:只输出 AI 计划,不执行。
  • --confirm-each:逐步确认,每步可执行/跳过/终止。
  • --yes:允许删除类动作(未带时会自动跳过删除)。

命令别名:

  • cp:等价于 put(上传文件)
  • sh:等价于 agent(自然语言快捷入口)
  • get:按文件 ID 下载文件到本地
  • mv:按 ID 移动文件/目录到目标目录

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages