# 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、平板、手机多端设备。
  • 个性化设置:支持用户自定义上传重名处理、默认视图模式、回收站清理周期等。

# ✨ 项目亮点

# 一、业务功能亮点

  1. 完整的文件生命周期管理:从上传→存储→分享→下载→删除→回收站→恢复/永久删除,全流程管理。
  2. 智能秒传技术:基于MD5文件指纹,相同文件只存储一份,大幅节省存储空间和上传时间。
  3. 灵活的分享机制:支持分享码+提取码双重验证,可设置有效期,保障数据安全。
  4. 精细化权限控制:管理员可查看全部用户数据,普通用户只能操作自己的文件。
  5. 完善的回收站机制:30天保护期,误删文件可恢复,过期自动清理释放空间。
  6. 多维度统计分析:按文件类型统计存储占用,记录上传下载日志,分享访问日志完整。

# 二、技术实现亮点

  1. 现代化前端技术栈:Vue 3.4.29 + Element Plus 2.8.4 + Vite 5.3.1,开发高效体验流畅。
  2. 稳定可靠的后端架构:Spring Boot + MyBatis,构建稳健后端服务。
  3. 完善的数据库设计:11张核心表,utf8mb4字符集,支持完整业务流程。
  4. 安全性设计:JWT Token认证、文件MD5校验、文件类型白名单过滤。
  5. 文件上传优化:支持大文件上传(单文件最大100MB),文件类型白名单控制。
  6. 系统配置灵活:存储空间限制、上传大小限制、文件类型白名单、回收站保留天数均可配置。

# 三、用户体验亮点

  1. 双端界面设计:
    • 前台:水平导航,简洁直观,适合用户日常使用。
    • 管理后台:侧边导航,功能集中,高效管理。
  2. 交互优化:
    • 文件夹树形结构,支持展开/折叠。
    • 面包屑导航,快速定位当前路径。
    • 拖拽上传,批量上传。
    • 文件预览(图片/视频/文档)。
    • 双击文件夹进入,双击文件预览/下载。
  3. 存储空间可视化:
    • 顶部显示存储空间使用进度条。
    • 空间不足时进度条变红色警告。
    • 按文件类型统计占用空间,一目了然。
  4. 个性化设置:
    • 上传重名文件自动重命名(开启/关闭)。
    • 默认视图模式(列表视图/网格视图)。
    • 回收站自动清理天数(可自定义)。
    • 分享默认有效期(可自定义)。

# 管理员

# 系统管理

管理员管理:管理全部管理员账号,支持新增、编辑、删除、启用/禁用操作。

普通用户管理:管理全部用户账号,可修改用户信息(用户名、昵称、手机号、邮箱、性别)、存储空间限制、账号状态,支持重置密码。

# 文件管理

文件信息管理:查看全部用户的文件信息,包括文件名、大小、类型、存储路径、上传时间、下载次数等,支持删除文件。

文件夹管理:查看全部用户的文件夹结构,可查看文件夹路径、创建时间,支持删除文件夹。

回收站管理:查看全部用户的回收站文件,可批量清理过期文件,支持恢复/彻底删除操作。

# 分享管理

文件分享管理:查看全部分享记录,包括分享码、提取码、分享标题、查看次数、保存次数、状态(有效/已取消/已过期)、过期时间,可取消分享。

分享访问日志:查看分享链接的访问记录,包括访问用户、访问类型(查看/保存/下载)、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
1
2
3
4

# 测试用户

系统初始无测试用户,请自行注册
注册后默认存储空间: 10GB
默认状态: 正常
1
2
3

# 核心业务流程

# 用户注册流程

1. 填写注册信息(用户名、密码、昵称、手机号、邮箱)
2. 系统创建用户账号
3. 分配默认存储空间(10GB)
4. 初始化存储统计数据(各文件类型数量和大小均为0)
5. 跳转到登录页
1
2
3
4
5

# 文件上传流程

1. 用户选择文件上传
2. 前端计算文件MD5值
3. 检查是否已存在相同MD5的文件(秒传检测)
4. 如果存在:
   - 直接创建文件信息记录,指向已有文件路径(秒传)
   - 上传类型标记为"秒传"
   - 不占用额外存储空间
5. 如果不存在:
   - 检查用户存储空间是否足够
   - 检查文件类型是否在白名单内
   - 检查文件大小是否超过限制(100MB)
   - 上传文件到服务器存储目录
   - 创建文件信息记录
   - 更新用户已用存储空间
   - 更新存储统计数据(文件类型、数量、大小)
   - 上传类型标记为"普通上传"
6. 记录上传日志(用户、文件名、大小、上传类型、时间)
7. 返回上传成功,刷新文件列表
1
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. 超过有效期后,分享状态自动变为"已过期"
1
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. 自动清理:
   - 定时任务扫描过期时间<当前时间的回收站文件
   - 自动执行彻底删除流程
1
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%显示红色警告
1
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. 可扩展性优势

  • 系统配置灵活:存储限制、上传大小、文件类型、回收站天数均可配置
  • 用户个性化设置:每个用户可自定义上传处理、视图模式、回收站周期
  • 多级文件夹:支持无限层级嵌套,满足复杂文件组织需求
  • 秒传机制:节省存储空间,支持大量用户共享相同文件

Java导航网   |