# 54-在线网盘系统 - 功能说明
# 项目概述
在线网盘系统是一个功能完善的云存储Web应用系统,采用前后端分离架构,基于Vue 3和Spring Boot技术栈,为用户提供文件存储、管理、分享等全方位的云盘服务。系统支持多种文件类型上传下载、文件夹管理、文件分享、回收站、存储空间统计等核心功能,并提供完善的权限管理和日志记录机制,是一个企业级的云存储解决方案。
# 项目概览
# ✨ 创新点
# 1. 完整的云盘存储体系
- 多类型文件支持:支持文档、图片、视频、音频、压缩包等多种文件类型,智能识别文件分类。
- 文件夹树形管理:支持多级文件夹嵌套,树形结构展示,路径导航清晰直观。
- 存储空间管理:为每个用户分配独立存储空间(默认10GB),实时显示已用/总容量,空间不足自动提醒。
- 智能文件秒传:基于MD5文件指纹识别技术,相同文件无需重复上传,节省存储空间和上传时间。
# 2. 强大的文件分享机制
- 灵活分享方式:支持生成唯一分享码,可设置提取码增强安全性。
- 分享有效期控制:支持设置分享过期时间(7天、30天、永久有效等),过期自动失效。
- 分享数据统计:实时记录查看次数、保存次数,追踪分享效果。
- 分享访问日志:记录每次访问的IP地址、访问时间、访问类型(查看/保存/下载),保障数据安全。
- 匿名访问支持:未登录用户可通过分享链接访问和下载文件,使用便捷。
# 3. 完善的回收站机制
- 误删保护:删除的文件进入回收站,30天内可恢复,避免误删造成损失。
- 自动清理:回收站文件超过30天自动永久删除,释放存储空间。
- 批量恢复:支持批量选择文件恢复到原路径。
- 彻底删除:支持从回收站彻底删除文件,立即释放空间。
# 4. 多维度数据统计分析
- 存储空间统计:按文件类型(文档/图片/视频/音频/压缩包/其他)统计文件数量和占用空间。
- 上传下载日志:记录每次上传/下载的文件名、大小、时间、用户信息,支持数据审计。
- 分享访问统计:统计分享链接的查看次数、保存次数、下载次数。
- 可视化数据展示:管理后台提供图表展示,直观了解存储使用情况。
# 5. 先进的技术架构
- 前后端分离:Vue 3.4前端 + Spring Boot后端,职责清晰,维护方便。
- JWT认证:基于Token的无状态认证,安全高效。
- 文件MD5校验:文件上传时计算MD5值,实现秒传功能,避免重复存储。
- 响应式布局:Element Plus组件库,适配PC、平板、手机多端设备。
- 个性化设置:支持用户自定义上传重名处理、默认视图模式、回收站清理周期等。
# ✨ 项目亮点
# 一、业务功能亮点
- 完整的文件生命周期管理:从上传→存储→分享→下载→删除→回收站→恢复/永久删除,全流程管理。
- 智能秒传技术:基于MD5文件指纹,相同文件只存储一份,大幅节省存储空间和上传时间。
- 灵活的分享机制:支持分享码+提取码双重验证,可设置有效期,保障数据安全。
- 精细化权限控制:管理员可查看全部用户数据,普通用户只能操作自己的文件。
- 完善的回收站机制:30天保护期,误删文件可恢复,过期自动清理释放空间。
- 多维度统计分析:按文件类型统计存储占用,记录上传下载日志,分享访问日志完整。
# 二、技术实现亮点
- 现代化前端技术栈:Vue 3.4.29 + Element Plus 2.8.4 + Vite 5.3.1,开发高效体验流畅。
- 稳定可靠的后端架构:Spring Boot + MyBatis,构建稳健后端服务。
- 完善的数据库设计:11张核心表,utf8mb4字符集,支持完整业务流程。
- 安全性设计:JWT Token认证、文件MD5校验、文件类型白名单过滤。
- 文件上传优化:支持大文件上传(单文件最大100MB),文件类型白名单控制。
- 系统配置灵活:存储空间限制、上传大小限制、文件类型白名单、回收站保留天数均可配置。
# 三、用户体验亮点
- 双端界面设计:
- 前台:水平导航,简洁直观,适合用户日常使用。
- 管理后台:侧边导航,功能集中,高效管理。
- 交互优化:
- 文件夹树形结构,支持展开/折叠。
- 面包屑导航,快速定位当前路径。
- 拖拽上传,批量上传。
- 文件预览(图片/视频/文档)。
- 双击文件夹进入,双击文件预览/下载。
- 存储空间可视化:
- 顶部显示存储空间使用进度条。
- 空间不足时进度条变红色警告。
- 按文件类型统计占用空间,一目了然。
- 个性化设置:
- 上传重名文件自动重命名(开启/关闭)。
- 默认视图模式(列表视图/网格视图)。
- 回收站自动清理天数(可自定义)。
- 分享默认有效期(可自定义)。
# 管理员
# 系统管理
管理员管理:管理全部管理员账号,支持新增、编辑、删除、启用/禁用操作。
普通用户管理:管理全部用户账号,可修改用户信息(用户名、昵称、手机号、邮箱、性别)、存储空间限制、账号状态,支持重置密码。
# 文件管理
文件信息管理:查看全部用户的文件信息,包括文件名、大小、类型、存储路径、上传时间、下载次数等,支持删除文件。
文件夹管理:查看全部用户的文件夹结构,可查看文件夹路径、创建时间,支持删除文件夹。
回收站管理:查看全部用户的回收站文件,可批量清理过期文件,支持恢复/彻底删除操作。
# 分享管理
文件分享管理:查看全部分享记录,包括分享码、提取码、分享标题、查看次数、保存次数、状态(有效/已取消/已过期)、过期时间,可取消分享。
分享访问日志:查看分享链接的访问记录,包括访问用户、访问类型(查看/保存/下载)、IP地址、访问时间,用于数据审计。
# 日志管理
上传日志:记录全部用户的文件上传记录,包括上传用户、文件名、文件大小、上传类型(普通上传/秒传)、上传时间。
下载日志:记录全部用户的文件下载记录,包括下载用户、文件名、文件大小、下载类型(普通下载/分享下载)、IP地址、下载时间。
# 统计分析
存储空间统计:按用户、按文件类型统计存储占用情况,查看文件数量和总大小,支持数据可视化展示。
# 系统配置
系统配置管理:配置系统全局参数,包括:
- 默认存储空间限制:新用户注册时分配的存储空间(默认10GB)。
- 单文件最大上传大小:限制单个文件最大上传大小(默认100MB)。
- 允许上传的文件类型:白名单控制,仅允许指定扩展名的文件上传(如jpg,png,pdf,doc,zip,mp4等)。
- 回收站文件保留天数:回收站文件超过保留天数自动永久删除(默认30天)。
用户设置管理:查看和管理所有用户的个性化设置,包括自动重命名、默认视图、回收站清理周期、分享默认有效期。
# 个人中心
个人信息:修改管理员个人信息(昵称、头像、手机号、邮箱)。
修改密码:修改登录密码。
# 普通用户
# 我的文件
文件上传:
- 支持点击上传或拖拽上传
- 支持批量上传多个文件
- 上传时显示进度条
- 文件MD5自动计算,相同文件秒传
- 上传成功后自动刷新文件列表
文件夹管理:
- 新建文件夹,支持多级嵌套
- 左侧树形结构展示文件夹层级
- 双击文件夹进入下级目录
- 面包屑导航显示当前路径
- 支持重命名、删除文件夹
文件操作:
- 下载:单击下载文件到本地
- 分享:生成分享链接和提取码,可设置有效期(7天/30天/永久)
- 重命名:修改文件名称
- 移动:移动文件到其他文件夹
- 删除:删除文件到回收站(30天内可恢复)
- 预览:支持图片、视频、文档在线预览
- 查看详情:查看文件大小、类型、上传时间、下载次数等信息
文件搜索:支持按文件名关键字搜索,快速定位文件。
视图切换:支持列表视图和网格视图两种展示方式。
存储空间显示:顶部显示当前已用/总存储空间,进度条可视化展示,空间不足时红色警告。
# 我的分享
分享管理:
- 查看全部分享记录
- 显示分享码、提取码、查看次数、保存次数
- 显示分享状态(有效/已取消/已过期)和过期时间
- 复制分享链接和分享码,便于分享给他人
- 取消分享(分享状态变为"已取消",链接失效)
分享详情:
- 查看分享链接完整URL
- 一键复制分享链接和分享码
- 查看分享统计数据(查看次数、保存次数)
# 回收站
文件恢复:
- 查看已删除的文件列表
- 显示文件名、大小、类型、删除时间、过期时间
- 恢复文件到原路径
- 支持批量恢复
彻底删除:
- 从回收站彻底删除文件,立即释放存储空间
- 支持批量彻底删除
- 彻底删除后无法恢复
自动清理提醒:超过30天的文件自动永久删除,回收站显示剩余天数。
# 个人中心
个人信息:修改个人信息(用户名、昵称、头像、手机号、邮箱、性别)。
修改密码:修改登录密码。
存储空间查看:查看当前存储空间使用情况,按文件类型统计占用空间。
个性化设置:
- 上传重名文件自动重命名:开启后,上传与现有文件同名的文件时自动添加编号重命名。
- 默认视图模式:设置文件列表的默认展示方式(列表视图/网格视图)。
- 回收站自动清理天数:设置回收站文件保留天数,超过天数自动清理。
- 分享默认有效期:设置创建分享时的默认有效期(天数)。
# 文件分享访问(无需登录)
访问分享链接:
- 输入分享码访问分享页面
- 如有提取码,需输入提取码验证
- 查看分享文件信息(文件名、大小、类型)
- 下载分享文件(记录下载日志)
- 保存到我的网盘(需登录)
# 功能权限对照表
| 功能模块 | 管理员 | 普通用户 |
|---|---|---|
| 首页 | ✓ | ✓ |
| 管理员管理 | ✓ | - |
| 用户管理 | ✓ | - |
| 文件信息管理(全部) | ✓ | - |
| 文件信息管理(个人) | - | ✓ |
| 文件夹管理(全部) | ✓ | - |
| 文件夹管理(个人) | - | ✓ |
| 文件上传下载 | - | ✓ |
| 文件分享管理(全部) | ✓ | - |
| 文件分享管理(个人) | - | ✓ |
| 分享访问日志 | ✓ | - |
| 回收站管理(全部) | ✓ | - |
| 回收站管理(个人) | - | ✓ |
| 上传日志 | ✓ | - |
| 下载日志 | ✓ | - |
| 存储空间统计 | ✓ | ✓(仅自己的) |
| 系统配置 | ✓ | - |
| 用户设置 | ✓ | ✓(仅自己的) |
| 访问分享链接 | ✓ | ✓(含匿名访问) |
# 文件状态说明
# 文件状态
- 正常:文件正常存储,可正常访问、下载、分享
- 回收站:文件已删除,进入回收站,30天内可恢复,超过30天自动永久删除
# 分享状态
- 有效:分享链接有效,可正常访问和下载
- 已取消:用户主动取消分享,链接失效
- 已过期:分享超过设置的有效期,链接自动失效
# 文件类型识别
系统根据文件扩展名自动识别文件类型:
- 文档:pdf, doc, docx, xls, xlsx, ppt, pptx, txt
- 图片:jpg, jpeg, png, gif, bmp
- 视频:mp4, avi, mkv, mov
- 音频:mp3, wav, flac
- 压缩包:zip, rar, 7z, tar, gz
- 其他:其他未分类的文件类型
# 默认账号
# 管理员
用户名: admin
密码: 123456
手机号: 123456
邮箱: 123456@qq.com
2
3
4
# 测试用户
系统初始无测试用户,请自行注册
注册后默认存储空间: 10GB
默认状态: 正常
2
3
# 核心业务流程
# 用户注册流程
1. 填写注册信息(用户名、密码、昵称、手机号、邮箱)
2. 系统创建用户账号
3. 分配默认存储空间(10GB)
4. 初始化存储统计数据(各文件类型数量和大小均为0)
5. 跳转到登录页
2
3
4
5
# 文件上传流程
1. 用户选择文件上传
2. 前端计算文件MD5值
3. 检查是否已存在相同MD5的文件(秒传检测)
4. 如果存在:
- 直接创建文件信息记录,指向已有文件路径(秒传)
- 上传类型标记为"秒传"
- 不占用额外存储空间
5. 如果不存在:
- 检查用户存储空间是否足够
- 检查文件类型是否在白名单内
- 检查文件大小是否超过限制(100MB)
- 上传文件到服务器存储目录
- 创建文件信息记录
- 更新用户已用存储空间
- 更新存储统计数据(文件类型、数量、大小)
- 上传类型标记为"普通上传"
6. 记录上传日志(用户、文件名、大小、上传类型、时间)
7. 返回上传成功,刷新文件列表
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 文件分享流程
1. 用户选择文件,点击"分享"
2. 设置分享参数:
- 分享标题(默认为文件名)
- 是否设置提取码(可选)
- 设置有效期(7天/30天/永久)
3. 系统生成唯一分享码(8位随机字符串)
4. 创建分享记录(状态:有效)
5. 返回分享链接和分享码
6. 用户复制分享链接发送给他人
7. 访问者打开分享链接:
- 输入分享码(如设置了提取码需验证)
- 查看文件信息
- 下载文件(记录分享访问日志:访问类型=下载)
- 或保存到我的网盘(需登录,访问类型=保存)
8. 每次访问记录查看次数+1,保存记录保存次数+1
9. 超过有效期后,分享状态自动变为"已过期"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 文件删除与恢复流程
1. 用户选择文件,点击"删除"
2. 文件状态变为"回收站"
3. 创建回收站记录:
- 记录文件ID、用户ID、文件名、大小、类型
- 记录原始路径(用于恢复时还原位置)
- 设置删除时间
- 设置过期时间(删除时间+30天)
4. 文件移入回收站,不立即删除物理文件
5. 用户存储空间暂不释放(仍计入已用空间)
6. 用户可在回收站查看已删除文件
7. 恢复文件:
- 文件状态变回"正常"
- 从回收站表删除记录
- 文件恢复到原路径
8. 彻底删除:
- 删除物理文件
- 删除文件信息记录
- 删除回收站记录
- 释放用户存储空间
- 更新存储统计数据
9. 自动清理:
- 定时任务扫描过期时间<当前时间的回收站文件
- 自动执行彻底删除流程
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 存储空间管理流程
1. 用户注册时分配默认存储空间(10GB,可由管理员在系统配置中调整)
2. 每次上传文件:
- 检查用户已用空间+文件大小是否超过存储限制
- 超过则拒绝上传,提示空间不足
- 未超过则允许上传,更新已用空间
3. 秒传文件不占用额外空间(文件指向已有存储)
4. 删除文件到回收站,空间暂不释放
5. 彻底删除文件,释放存储空间:
- 更新用户已用空间(减去文件大小)
- 更新存储统计数据
6. 管理员可手动调整用户存储空间限制
7. 首页顶部实时显示存储空间使用情况:
- 进度条显示百分比
- 超过90%显示红色警告
2
3
4
5
6
7
8
9
10
11
12
13
14
# 技术说明
# 系统架构
- 前端:Vue 3.4.29 + Element Plus 2.8.4 + Vite 5.3.1
- 后端:Spring Boot + MyBatis
- 数据库:MySQL 5.7+
- 认证:JWT Token
- 文件存储:本地文件系统存储
# 访问地址
- 后端API:http://localhost:1000
- 前端页面:http://localhost:5173(开发环境)
# 数据库
- 数据库名:a_54_netdisk_system
- 字符集:utf8mb4
- 总表数:11张表
# 核心表说明
- admin:管理员表
- user:普通用户表,包含存储空间限制和已用空间字段
- file_info:文件信息表,记录文件名、路径、大小、类型、MD5、状态等
- folder:文件夹表,支持多级嵌套,记录文件夹路径
- file_share:文件分享表,记录分享码、提取码、有效期、查看次数、保存次数
- share_access_log:分享访问日志表,记录访问类型、IP地址、访问时间
- recycle_bin:回收站表,记录删除的文件,30天后自动清理
- upload_log:上传日志表,记录上传文件的用户、文件名、大小、上传类型(普通上传/秒传)
- download_log:下载日志表,记录下载文件的用户、文件名、大小、下载类型(普通下载/分享下载)
- storage_statistics:存储空间统计表,按用户和文件类型统计文件数量和占用大小
- system_config:系统配置表,存储全局配置参数
- user_settings:用户设置表,存储用户个性化设置
# 系统特色
# 文件管理特色
- 智能文件秒传:基于MD5文件指纹识别,相同文件只存储一份,大幅节省存储空间和上传时间
- 多级文件夹管理:支持无限层级嵌套,树形结构展示,面包屑导航定位路径
- 文件类型智能识别:根据扩展名自动识别文件类型(文档/图片/视频/音频/压缩包/其他),分类存储统计
- 批量操作:支持批量上传、批量下载、批量删除、批量移动、批量分享
- 文件搜索:支持按文件名关键字搜索,快速定位文件
- 多视图展示:支持列表视图和网格视图两种展示方式,满足不同使用习惯
# 分享功能特色
- 灵活的分享方式:支持生成唯一分享码,可设置提取码增强安全性
- 分享有效期控制:支持设置7天、30天、永久有效等多种有效期
- 分享数据统计:实时记录查看次数、保存次数、下载次数
- 分享访问日志:记录每次访问的用户、访问类型、IP地址、访问时间
- 匿名访问支持:未登录用户可通过分享链接访问和下载文件
- 一键复制分享:复制分享链接和分享码,便于分享给他人
# 存储管理特色
- 存储空间配额:为每个用户分配独立存储空间,默认10GB,管理员可调整
- 实时空间监控:顶部进度条显示已用/总存储空间,超过90%红色警告
- 按类型统计:按文件类型(文档/图片/视频/音频/压缩包/其他)统计文件数量和占用空间
- 空间不足提醒:上传文件时检查空间,不足时拒绝上传并提示
- 秒传节省空间:相同文件秒传不占用额外空间,多用户共享同一文件存储
# 回收站特色
- 30天保护期:删除的文件进入回收站,30天内可恢复
- 自动清理机制:超过30天的文件自动永久删除,释放存储空间
- 批量恢复:支持批量选择文件恢复到原路径
- 彻底删除:支持从回收站彻底删除,立即释放空间
- 过期时间提醒:回收站文件显示剩余天数,避免误删
# 日志审计特色
- 上传日志:记录每次上传的文件名、大小、上传类型(普通上传/秒传)、上传时间
- 下载日志:记录每次下载的文件名、大小、下载类型(普通下载/分享下载)、IP地址、下载时间
- 分享访问日志:记录分享链接的访问用户、访问类型(查看/保存/下载)、IP地址、访问时间
- 完整审计链:从上传到下载全流程日志记录,保障数据安全
# 个性化设置特色
- 上传重名处理:可设置重名文件自动重命名(开启/关闭)
- 默认视图模式:可设置默认展示方式(列表视图/网格视图)
- 回收站清理周期:可自定义回收站文件保留天数
- 分享默认有效期:可设置创建分享时的默认有效期
# 项目优势
# 1. 功能完善性
- 完整的文件生命周期管理:上传→存储→分享→下载→删除→回收站→恢复/永久删除
- 智能秒传技术:MD5文件指纹识别,相同文件只存储一份,节省空间和时间
- 灵活的分享机制:分享码+提取码双重验证,可设置有效期,保障安全
- 完善的回收站机制:30天保护期,误删可恢复,过期自动清理
- 多维度统计分析:按文件类型统计存储,记录上传下载日志,分享访问日志完整
# 2. 技术实现优势
- 前后端分离:Vue 3 + Spring Boot,职责清晰,维护方便
- JWT认证:无状态认证,安全高效
- 文件MD5校验:实现秒传功能,避免重复存储
- 响应式设计:适配PC、平板、手机多端设备
- 数据库设计规范:11张表,关系清晰,数据完整
# 3. 安全性优势
- 文件类型白名单:只允许指定扩展名的文件上传,防止恶意文件
- 文件大小限制:单文件最大100MB,防止存储滥用
- 分享提取码:可设置提取码,增强分享安全性
- 分享有效期:可设置有效期,过期自动失效
- 访问日志记录:完整记录访问IP、时间、类型,保障数据安全
# 4. 用户体验优势
- 操作简单:界面清晰,流程顺畅,拖拽上传便捷
- 实时反馈:上传进度条,存储空间进度条,状态实时更新
- 多视图支持:列表视图和网格视图,满足不同习惯
- 个性化设置:自定义上传处理、视图模式、回收站周期等
- 文件预览:支持图片、视频、文档在线预览
# 5. 可扩展性优势
- 系统配置灵活:存储限制、上传大小、文件类型、回收站天数均可配置
- 用户个性化设置:每个用户可自定义上传处理、视图模式、回收站周期
- 多级文件夹:支持无限层级嵌套,满足复杂文件组织需求
- 秒传机制:节省存储空间,支持大量用户共享相同文件