前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网盘系统

网盘系统

作者头像
用户10863341
发布2023-11-30 17:28:20
2540
发布2023-11-30 17:28:20
举报
文章被收录于专栏:ros--转载ros--转载

很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......

针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!

项目专栏:7天搞定毕业设计和论文

对计算机技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~       


1、项目背景

随着信息网络技术的迅猛发展,云计算技术从它的概念提出已经开始在实际生产环境中使用了。大部分的东西都已经慢慢云端化,这种新型的技术也受到许多互联网人员的关注,网盘产品的诞生也是建立在云计算的基础之上的。互联网相关的公司不断增多,这些公司内部每天都进行着数据的产生和流动,由于公司的人员和公司业务的扩大,员工之间传输资源文件也变得更加频繁了,而通过传统的移动设备来进行资源传播,存在着许多问题,首先移动设备的使用寿命是有限的,而且通过传统方法来共享资源的话,用户一定要将该移动设备转交给另个用户。除了移动设备外,大家也经常使用发送电子邮件方式来传输文件,但是大型的文件是不支持的。随着数据量不断增大,传统的网盘已经不能很好满足企业的需求,无论是在文件的传输速度上,还是文件保密性都存在一定得缺陷。不过,现在市面上有一些企业做网盘服务,比如腾讯公司和百度公司,但他们的产品太过于商业化,数据的隐私和购买服务的价格都不太理想。因此,根据目前企业网盘发展状况,我们急需设计一个符合企业的网盘系统,该系统能够提供超大容量、高可用的存储服务,帮助企业更高效管理内部的资源。

在这个大数据和云计算时代,海量数据的存储面临着一个难题,因此有些企业先对这个问题进行了研究,谷歌也做出了很大的贡献,它开发了一套文件系统,通过现有的技术和各种资源,做到可以在多台电脑上进行分布式存储,这样的设计方式更好的满足了大数据存储的需要。谷歌分布式文件系统不是开源的,HDFS分布式文件存储系统对此进行了实现并向大众公开源码,让大家参与进来。HDFS系统部署的机器没有什么特殊要求,另外Hdfs集群有许多优秀的设计模式,我们可以用它以更低的成本实现更多数据的传输,所以本系统最终选用Hdfs作为资源文件存储文件系统。

项目资源下载请参见:https://docs.qq.com/doc/p/f2156ad12f7987f9296a25e51f8285d371048d6f/

2、项目功能

企业级网盘系统的开发与完成主要分为前端和后端二大部分,前台主要为企业用户服务的,企业的员工可以管理自己的网盘,如果自己有比较好的资源文件可以加入到企业共享网盘,这样企业每个用户都有权限下载、在线查看文件,除此之外,也可以把自己的资源文件通过用户分享或者链接分享的方式发送给用户。系统后台用户可以对系统角色进行编辑和分配,控制用户的管理权限,管理企业共享网盘里面的资源文件等,具体模块功能如下:

前台:

  1. 用户登录,本系统用户可以通过账号登录,短信登录,还可以通过QQ扫码登录,如果用户忘记了密码,验证通过后,可以找回密码。
  2. 个人中心,用户可以修改自己的信息,绑定扫描登录的QQ号。
  3. 系统通知,后台管理员通过后台系统发布系统通知,然后通知会通过推送的方式发送给前台用户。
  4. 网盘管理,每个用户系统会分配一个网盘给他,用户可以在分配的网盘里面创建文件夹,上传各种格式的文件,文件下载,文件重命名,文件复制,文件删除。除此之外,用户可以在线浏览文档,图片和视频等多媒体资源。
  5. 企业内部资源查询,用户可以把自己个人好的资源加入到企业内部共享网盘,例如,自己总结的或者看到的优秀的技术文档,或者一些有技术含量的开源项目、开发工具等。在上方的输入框可以通过输入关键词对资源进行模糊查询。
  6. 分享管理,用户可以把自己一些好的资源分享给企业其他用户,可以通过搜索相关的用户,然后将资源分享给他,也可以通过生成一个code,然后拼接一个url进行分享。
  7. 关注用户,自己感兴趣的一些用户可以进行关注,当关注的用户发布他们的资源,关注他的用户可以在动态里面看见。

后台:

  1. 用户登录,这里提供了多种登录的方式,如账号登录,扫码登录,短信登录,方便用户登录网盘系统。
  2. 首页数据大盘,系统管理员可以通过可视化的界面查看企业内部用户使用该系统的活跃折线图,资源下载排行榜,资源受欢迎程度排行榜。
  3. 用户管理,本次毕设系统面向两类用户人群,一类是前台用户,管理员可以通过导入Excel的方式批量添加用户,也可以一条一条添加,而后台用户只能单条添加。管理员可以对用户信息分别进行编辑,删除操作。
  4. 部门管理,企业刚开始使用系统时,需要将企业部门相关信息完善,后台提供了非常友好的界面和操作方便管理员录入。
  5. 角色管理,系统超级管理员可以添加多个角色,然后分别给角色分配权限,该权限包过系统后台菜单的权限和部门之间的数据权限,保存之后即可生效。
  6. 企业共享网盘资源管理,后台管理员可以管理企业内部用户上传在共享网盘上的资源,可以将一些劣质的,对企业无关的资料进行清除。
  7. 系统管理,管理员可以动态的增加,删除,修改菜单,给菜单分配对应的权限,这样设置的好处是可以将不同的菜单功能面向不同的用户人群;在该模块下的定时任务配置管理界面中,用户可以配置Corn表达式,来定时触发需要执行的代码。系统管理员在日志管理里面查看所有的系统日志,如果系统监控一些奇怪的请求,系统会及时将相关异常信息通过邮件发送给管理员。
  8. 其他管理,系统对后台所有提供的接口生成一个在线接口文档,对系统开发人员,和系统以后的维护有重要的意义。
  9. 系统监控,在该模块下有服务器监控,Sql监控,Hadoop监控,SpringCloud微服务注册中心监控。

系统采用SpringCloud,首先需要将所有的服务启动,然后注册到服务注册中心,服务之间可以互相调用,访问的协议是Http。最后引入API Gateway作为轻量级网关,该网关处理分发前端的请求,通过JSON数据返回给前端。为了保证该系统信息的保密性,访问该系统所有的用户都需要进行权限校验,只有校验成功的用户才可以成功跳转到系统主界面。然后在拦截器里面根据用户ID去用户角色表和用户菜单表查出用户可以访问的菜单权限和数据权限,从而给用户展示不同的界面,系统角色功能如下:

1、企业普通员

该用户通过前台系统登陆后,进入系统首页,首页会有个图表展示,登陆用户可以清楚知道自己网盘里面的文件数和分享的文件数,右侧也会有个企业员工分享排行榜,然后用户可以分别操作网盘,分享,资源库,关注用户,个人信息修改,系统通知这几个模块。在我的网盘管理模块中,用户可以通过用户或链接的方式将自己的资源分享给其他的用户,也可以将文件发布到企业共享网盘里面。只要是在企业里面的员工都有权限查看企业的共享网盘,可以在线查看共享网盘里面的文件,下载到自己本地。

2、管理员

用户通过后台入口登陆后台系统,系统通过账号自动检测用户的类型,管理员登陆后,会根据管理员所拥有的菜单权限和部门数据权限控制用户所能看到的后台界面和查询数据的范围。管理员可以添加前台用户,然后给用户分配部门和所拥有的角色,另外还有网

盘管理模块的权限,在网盘管理这个模块中,管理员可以查看企业共享网盘里面所有的资源文件,并有权修改文件信息,规范网盘。

3、超级管理员

系统超级管理员默认账号是admin,密码是asdf123。超级管理员登录系统后,管理员,如果是超级管理员,会跳过过滤器的校验。除此之外,超级管理员可以添加系统后台用户类型,动态配置后台菜单和对应页面按钮的权限,添加系统角色类型,添加企业部门相关信息。除了管理员有的功能外,超级管理员有权查看系统相关的日志,定时任务,公告管理,数据库监控,Hadoop分布式存储集群监控,微服务监控。

3、项目机制

企业网盘系统的使用者分为企业普通员工和企业管理员,所以进行的基本处理流程是不一样的。企业普通员工进入本系统前台主界面后看到的是首页数据大盘,系统右上角有用户的头像和系统公告通知。在首页顶部的位置有个欢迎用户功能,此模块会根据用户登录的时间,人性化的对用户进行打招呼,比如用户深夜的时候登陆系统,该提示语会提醒“已经深夜了,你还在加班吗,请注意休息!”。当用户点击我的网盘模块后,系统首先会请求一次接口,展示自己网盘里面的文件,该用户可以对文件进行相关的操作。在分享模块中,用户可以选择不同的tab栏,分别对已共享、已接收的文件进行查看。当用户进入存储库模块时,单击不同的文档分类以查看已分类的文档,可以对文件进行查询,预览和下载。系统管理员发布通知后,系统前台会在系统右上角进行消息条数的提醒,点击消息红点后,会出现通知下拉列表框,再点击下拉列表里面的查看更多,可以进入更多模块下的系统公告列表页面,在该页面里面,用户可以通过标题关键字,公告发布的时间范围进行搜索,在更多模块下用户可以动态切换系统主题,然后让用户无感知的记录用户行为,当用户退出登录后重新登录,系统的主题还是用户退出登录时所选择的主题。

管理员和超级管理员成功登入系统后台后,默认会调到Index页面去,在该首页,我们可以看到登录用户、服务器运行相关信息。在数据大盘模块,可以看到最近上传文件的数量,以及最近一段时间的上传曲线图。系统超级管理员可以管理系统所有的功能和所有用户,如果需要控制系统用户能访问的菜单,系统管理员只需更改相关角色所拥有的菜单列表。

4、功能模块结构

基于SpringCloud+Hadoop+Vue企业网盘系统主要分为前台和后台两大模块,前台模块分为首页,网盘,分享,资源库,关注用户,系统公告模块,不同的功能模块拥有的功能也是不相同的。此外,所需权限也不同。后台模块分为用户、部门、角色、网盘、日志、系统监控、接口文档、定时任务模块。在网络磁盘管理模块中,管理员可以上传、删除和修改文档,管理员还可以在线查看多媒体资源,如Word文档、视频、音乐、图片。

5、数据库设计

概念结构设计指的就是开发人员在项目开发前,对数据结构进行设计,这是需求分析中所得到东西进行抽象化的结果。本系统主要实体如下:

  1. 用户:用户主键(pk)、用户名、头像、密码、salt值、邮箱、手机号码、类型、状态、部门ID(fk)、添加时间。
  2. 部门:部门主键(pk)、父部门编号、部门名、删除标记。
  3. 角色:角色主键(pk)、角色名、注释、添加时间。
  4. 菜单:菜单主键(pk)、父菜单ID、菜单名称、菜单URL、授权、类型、菜单图标、排序、版本号。
  5. 文件:文件ID(pk)、父文件ID、原版文件名、文件名、文件路径、文件大小、文件类型、是否可在线查看、是否邮箱、创建者、创建时间、修改者、添加时间、版本号、下载数量。
  6. 网盘:网盘ID(pk)、企业名字、企业ID(fk)、是否有效、创建者、添加时间。
  7. 分享:ID(pk)、用户主键(fk)、用户名、被分享用户ID(fk)、被分享用户名、文件名、过期时间、是否有效、创建时间、创建者、修改时间、修改人、版本号。
  8. 数据字典:字典id(pk)、字典名称、 字典类型、字典码、 字典值、 排序、备注、删除标记、创建时间、创建者、修改时间、修改者、版本号。
  9. 系统日志:日志id(pk)、用户名、用户操作、请求方法、请求参数、执行时长(毫秒)、IP地址、创建时间、创建者。
  10. 文件上传:id(pk)、URL地址、创建时间、创建者。
  11. 定时任务:任务id(pk)、SpringBean名称、方法名称、参数、cron表达式、任务状态、注释、添加时间。
  12. 定时任务日志:任务日志id(pk)、任务id(fk)、SpringBean名称、方法名、参数、任务运行状态、失败信息、耗时(毫秒)、创建时间。
  13. 网络磁盘文件关联实体:id(pk)、网络磁盘id(fk)、文件id(fk)、添加时间、创建者。
  14. 用户文件管理实体:id(pk)、用户编号(fk)、文件主键(fk)、新增时间、创建者。

ER图如下所示:

6、项目实现

6.1、前台主要功能模块

登陆模块

用户要使用该系统,必须登录通过后才有权访问系统。用户输入正确的账户信息、手机号和验证码或QQ扫码登录,如果用户账户信息无误,系统会跳转到网盘系统首页界面。

个人信息维护模块

个人信息维护模块里面有基本信息设置和安全信息设置,在基本信息设置Tab中,用户可以对个人资料进行修改,修改时会对用户输入的账户、邮箱进行一定得校验;在安全信息设置Tab中,用户可以将自己账户和相关的QQ进行绑定,登录系统的时候就可以通过QQ扫码登录了。

系统通知模块

后台管理员发布系统公告后,系统前台可以接收到系统公告的通知,前端在页面表现行为在界面头部会有个信息通知条数提示,点击后会展示最新的前5条公告,点击查看更多可以查看公告详情。

网盘管理模块

系统每增加一位用户,用户可以获取默认大小的网盘空间,登录系统后,可以对我的网盘进行各种操作。

资源库管理模块

用户可以把自己认为比较好的资源加入到企业内部共享网盘,比如自己总结的一

些好的技术文档,开源项目,博客技术文档,开发工具等。企业其他用户在该模块里

面可以进行查看,这里提供了按文件名模糊搜索的功能。

关注用户模块

为了将系统用户之间关系打通,我们这里添加了一个用户关注模块。在关注用户模块下,用户可以查询自己已经关注了哪些用户,还有哪些用户没有进行关注。点击用户名,可以进入到用户信息详情页面。

6.2、后台主要功能模块

登录模块

用户要使用后台系统,必须登录通过后才有权访问。后台登录是通过账户+验证码方式进行登录的。

网盘管理模块

后台管理员可以管理企业内部用户上传在共享网盘上的资源,可以将一些劣质

的,对企业无关的一些资料进行筛选,删除等各种操作。

日志管理模块

日志管理模块下,系统通过Aspect方式,将所有的请求方法都进行拦截,在请求

前开始计时,直到请求完成,关闭计时,然后将请求相关的信息封装成我们想要的格式,插入数据库中。系统后台管理员可以在日志列表页里面进行查看,由于日志的数量非常多,所有在该列表可以对数据进行过滤,在搜索输入框里面输入用户名或用户操作对日志进行模糊查询,系统管理员也可以一键清除日志,者配置定时任务,定期给系统日志进行备份,清洗。

系统管理模块

该模块下的功能比较多,主要是系统相关的功能模块,比如系统后台菜单,公告

通知,字典管理。该模块下比较特殊的一个是接口文档功能,将系统中相关的接口进行可视化,并且可以在线对接口进行测试,这样设计还有好处是可以方便系统的后期维护。

系统监控模块

该模块下有阿里Druid数据库监控,Hdfs集群监控,Eureka注册中心监控,服务器监控。在Sql监控界面,我们可以看到Mysql的驱动版本,系统启动的时间。在Hadoop监控菜单下,我们可以看见分布式集群各个节点状况和系统网盘文件在Hdfs分布式存储里面存储状况。在Eureka注册中心菜单界面下,我们可以看到系统的状态,当前已注册到Eureka的服务,节点信息,基本配置信息。在服务器监控菜单下,我们可以看见服务部署所在服务器的CPU,内存,服务器新,Java虚拟机信息,磁盘状态信息。

7、项目效果

7.1、主界面

用户界面由菜单、欢迎词组、系统通知、用户头像组成。横向菜单中列出用户能够使用的功能,由首页,网盘,分享,资源库,关注用户,系统公告,个人信息管理几个功能选项组成;题头是根据用户登录ID来显示对应的登录用户称呼题头中还设置了注销退出的按钮,清晰明了的告诉用户,如何退出系统,另外题头也有消息通知提示,点击后可以看到消息简略内容,点击查看更多可以进入系统公告列表页面,然后可以查看公告详情。

管理员界面由菜单、欢迎词、修改密码组成,菜单中列出管理员能够使用的功能,由用户管理,网盘管理,日志管理,系统管理,系统监控几个功能选项组成。在导航栏的右侧还提供了注销退出和修改密码功能模块,清晰明了的告诉用户,如何退出系统,以及忘记密码如何重新设置密码。

超级管理员拥有最高权限。

在用户主界面下的查询子界面,用户在网盘界面可以查看自己网盘文件(例如文件名,大小,创建时间,创建人)。当上传文件成功时,vue会监听相关事件,如果监听到上传文件事件就刷新该页面,重新请求后台接口。

本系统实现了两种分享方式,第一种方式是通过用户分享,在用户分享界面可以进行模糊搜索,会根据用户输入的关键词模糊匹配出所有的用户;第二种分享方式是链接分享,系统将生成的链接放到Redis缓存,并设定过期的时间,其他用户打开链接后,通过code去Redis缓存里面查询该code对应的文件和用户信息,用户点击提取后,该文件就会添加到自己网盘里。

7.2、后台界面

在系统后台主界面下的子界面中,用户可以在用户管理菜单目录下查看企业用户列表,编辑用户信息(如用户名、部门、密码、邮箱、手机号、状态)。选择部门时,会弹出企业部门选择框,该数据结构是树状的,可以一层一层展开下去,直到子部门。

系统超级管理员可以编辑角色拥有的功能权限和数据权限。

7.3、菜单管理界面

超级管理员可以配置菜单对应的页面,在配置菜单的时候需要注意菜单的授权方式,这里需要结合shrio的访问权限。代码里面的权限标识符合配置菜单的权限标识符要一致才能生效,另外可以对菜单设置排序编号。

项目资源下载请参见:https://download.csdn.net/download/m0_38106923/87872906

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、项目背景
  • 2、项目功能
  • 3、项目机制
  • 4、功能模块结构
  • 5、数据库设计
  • 6、项目实现
    • 6.1、前台主要功能模块
      • 6.2、后台主要功能模块
      • 7、项目效果
        • 7.1、主界面
          • 7.2、后台界面
            • 7.3、菜单管理界面
            相关产品与服务
            微服务引擎 TSE
            微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档