基于SpringCloud+Hadoop+Vue实现的企业级网盘系统实现

编程语言:Java、Mybatis、Spring、SpringBoot、SpringCloud、Node、Vue

开发环境:Windows 10 + Mysql

开发工具:WebStorm、IDEA编译器、Git、Maven

应用部署服务器:SpringBoot内置Tomcat插件

Node服务器:Node v10.15.3

数据库:Mysql v5.5.59

缓存服务:Redis v2.8.9

代码仓库管理系统:GitHub

服务器环境:处理器Core i5以上

系统展示

  1. 用户界面

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

用户界面

管理员界面

  1. 超级管理员界面

超级管理员拥有最高权限

 超级管理员界面

 登陆界面

 网盘界面

分享界面

  1. 用户管理界面

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

用户管理界面

菜单界面

  

随着信息技术与网络技术的发展,现在我们国家推动文件管理的电子化,网络化,全面信息共享已经成为大趋势。许多企业时刻进行着大量数据资源的产生和流通,信息共享交流更加频繁,如各类文档文件、代码文件、学习视频、多媒体素材等都需要频繁使用。但随着存储技术的不断发展,传统的网盘技术已经显得力不从心,存在传输速度慢、容灾备份及恢复能力低、安全性差、营运成本高等诸多瓶颈。而近年流行的云存储技术推动了网盘行业的浪潮,如百度云、腾讯微云等。由于目前的云存储服务大多是商业化产品,对企业网的信息化建设来说,在数据安全和价格上都是问题。分布式存储技术应用于企业文件管理中,增强了企业资源的安全可靠性,提高了企业的资源共享率,降低了信息价值的流失。

本文首先分析了企业网盘的系统背景,明确了本文的研究思路和方向,然后,按照软件工程项目的要求,进行了业务的需求分析,并通过业务流程整理和问题分析,整理出系统的需求,根据分析结果进行了系统的建模,然后通过对相关技术的调研,依据软件的设计原则,在充分考虑灵活性,通用性,安全性,易扩展性等的基础上确定了系统,给出了企业级网盘的系统框架设计,包括前后端Web系统,数据访问层,业务逻辑层,视图控制层,该出了项目的代码结构,包括用户登录,个人中心,系统通知,网盘管理,分享资源,关注用户,用户管理,部门管理,角色管理,菜单管理,系统监控等功能模块,并进行了实现。本系统融合了SpringCloud微服务和渐进式框架Vue以及基于JavaEE中主流的SSM框架的Web系统进行设计,使用Hadoop的分布式文件系统来存储企业产生的各种资源,实现了一个用户交互性能良好、功能实用、能满足当前企业需求以及可扩展的企业网盘系统。在本文的研究中,在系统的架构设计方面以及用户交互体验方面做了较多的工作,目标是开发出一个拓展性强、代码重用度高的系统,以便将来的拓展和维护,同时,改善传统企业网盘用户交互体验差和性能差的状况,提高系统的实用性及易用性。

研究的背景及意义

1.1.1 研究的背景 

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

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

1.1.2 国内外研究现状  

我们常见的网盘有个人和企业。本次毕业要实现的是一个私有化的企业网盘系统该系统的主要作用是可以将企业内部产生的资源文件按系统设定的算法,同过大数据技术和云计算能力将资源高效的存储在云端,然后系统提供给用户在线查看、分享、备份、下载等多种资源操作服务。

根据调查发现,国内外企业网盘发展的状况是不同的。通过资料了解到,国外很早的时候就开始研究企业网盘了,而我们国内研究的时间相对要晚许多。但近年随着云计算和大数据的不断成熟,企业网盘很多遗留的问题也得到了解决。对于很多新型的企业公司,他们会将企业内部用户产生的各种数据、文件、多媒体资源进行统一存储,然后提供一个友好的平台给用户进行访问,这个可以让一些资源在企业进行流动分享,提高资源的利用

率和团队的协同办公效率。最近几年,国内的很多巨头公司在企业网盘上也砸下了很多资金,投入了许多人力物力来研究企业网盘。而在海外,企业网盘也是发展地非常迅速,从多种数据角度分析,可以看出企业网盘存在的合理性。从目前国内外发展状况来看,企业网盘在市场上任然有很多的上升空间。

1.1.3 研究的意义 

为了解决企业的数据存储和企业内部资源的高效管理问题,本系统底层采用存储技术,在数据中心进行海量数据的运算和存储,为企业数据可视化提供数据服务支持。目前,该项目前端使用的是Vue.js;后端使用SpringCloud。通过这种系统架构,可以实现前后端的分离,前端开发人员和后端开发人员可以减少更多的冲突如果后端的接口没及时提供,前端可以先Mock数据,这样可以提高开发的效率。SpringCloud提了很多插件,有链路监控插件,日志在线查看插件,数据大盘插件等通过集成这些插件,我们可以很轻松扩展我们应用的功能。对于注册在SpringCloud里面的服务它可单独部署,就算系统其中某些服务出现问题,也不会影响系统完整的功能  

本企业网盘系统也提供了许多实用的功能和友好的界面,整个系统的架构可以快速满足企业的发展需求。企业员工共享文时,可以有效地提高工作效率,用户产生的文件会在后台进行一个处理,该处理对用户是无感的。此外,我们将产生的文件都存放到Hdfs文件系统,该文件系统也提供了非常强大的平台,我们可以对存储的文件进行各种计算处理,而且该系统会将文件备份成3份,就算系统文件丢失,我们也有办法进行恢复。咱们也希望通过本次毕业系统设计,让我们能够将多种技术进行整合加强了对常用的开发工具,各种开源办公平台的使用。

1.2 系统目标

 现在大部分企业使用的办公软件是钉钉或者企业微信等软件,企业员工之间经常会 传一些资料,但通常这些资料会被聊天记录冲刷掉,导致我们想去找文件的时候还有去以前的聊天历史里面去找,这样对于办公人员非常不友好,而且有时候我们把软件的缓存清除,以前传输的文件也会被清除。目前市面上也有一些比较网盘成熟的网盘产品,比如百度网盘,微盘等,但这大部分都网盘对应的用户都是个体。个人使用的网盘基本上存储的是自己私人的资料,而且大部分网盘的上传速度和下载速度都非常慢,所以我们需要开发一套私有化的企业网盘,来满足企业的需求。目前百度,联想等是常见的企业网盘公司,他们大多数服务都过多的商业化,对企业来讲,在数据的保密性和租赁服务的价格上都不太理想。为了能给一些企业有效管理内部资源,帮助企业快速成长,因此私有的企业级网盘系统顺势而生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/289136.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jconsole jvisualvm

jconsole 打开方式 命令行输入 jconsole双击想要连接的应用 界面展示 jvisualvm 打开方式 命令行输入 jvisualvm双击想要连接的应用 可以安装插件,比如 Visual GC 直观看到 GC 过程

最新版puppeteer 在linux下的安装教程

最新版的 puppeteer 在安装的时候,Chromium不会自动下载,导致安装失败 这个时候需要跳过Chromium的安装,然后手动下载Chromium并安装。 1、先设置npm跳过Chromium下载 export PUPPETEER_SKIP_DOWNLOADtrue 2、安装puppeteer npm i pup…

1. Java概述

文章目录 1.Java语言概述1.1 Java介绍1.1.1 软件开发概述1.1.2 计算机语言1.1.3 Java 简史1.1.4 Java 技术体系平台1.1.5 Java在各领域的应用1.1.6 Java语言特点1.1.7 Java核心机制一-Java虚拟机1.1.8 Java核心机制二-垃圾回收1.1.9 Java开发工具 1.2 Java环境搭建1.2.1 JDK、J…

PhpStorm 2023 for Mac/Win:开启PHP集成开发新纪元,让编程更高效更智能

在数字时代的浪潮中,PHP作为一种广泛应用的服务器端脚本语言,其重要性不言而喻。而要在PHP的世界里游刃有余,一款强大的集成开发环境(IDE)是必不可少的。PhpStorm 2023,正是这样一款能够助您一臂之力的编程…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(三)

概览 承接上一篇博文: Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(二)我们在其中讨论了如何使用第三方强大通用的钩子库 SwiftHook 来协助我们完成 NSObject 构造器 init 的 SWIZZ 操作。我们还讨论了为什么用 print 打印对象信息时会发生崩溃…

如何借用 NTFS 交换数据流 实现隐藏文件?如何使用【文件包含】PHP伪协议?不同操作系统如何实现文件隐藏和木马伪装?

如何借用 NTFS 交换数据流 实现隐藏文件?如何使用【文件包含】PHP伪协议?不同操作系统如何实现文件隐藏和木马伪装? NTFS交换数据流(Alternate Data Streams, ADS)是NTFS文件系统特有的一种功能,它允许在同一个文件名下存储多个数据流。除了默认的数据流(通常用于存储文…

ExoPlayer架构详解与源码分析(12)——Cache

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…

免费的CMS平台,免费CMS文章更新系统

随着网站建设的需求日益增加,寻找一款免费的CMS平台以及配套的文章更新系统成为了许多网站所有者的首要任务。本文将探讨免费的CMS平台的特点,以及CMS文章更新系统的作用和如何选择合适的系统。 免费的CMS平台的特点 开源免费:免费的CMS平台…

Ansible-1

Ansible是一款自动化运维、批量管理服务器的工具,批量系统配置、程序部署、运行命令等功能。基于Python开发,基于ssh进行管理,不需要在被管理端安装任何软件。Ansible在管理远程主机的时候,只有是通过各种模块进行操作的。 需要关…

mysql80-DBA数据库学习1-数据库安装

掌握能力 核心技能 核心技能 mysql部署 官网地址www.mysql.com 或者www.oracle.com https://dev.mysql.com/downloads/repo/yum/ Install the RPM you downloaded for your system, for example: yum install mysql80-community-release-{platform}-{version-number}.noarch…

JAVA虚拟机实战篇之GC调优[2](解决GC问题的手段)

文章目录 版权声明解决GC问题的手段优化基础JVM参数-Xmx 和 –Xms-XX:MaxMetaspaceSize 和 –XX:MetaspaceSize-Xss虚拟机栈大小‐XX:SurvivorRatio和‐XX:MaxTenuringThreshold-XX:DisableExplicitGC 案例:垃圾回收器的选择复习:垃圾回收器的组合关系背…

vue 元素拖动,复制,已复制元素可移动,快捷方便,已解决

注意:使用当前组件时,请先了解组件代码逻辑 下方组件根据自己的需求来更改响应的元素id,调整代码实现逻辑,这里不过多解释 import Vue from "vue";/*** 拖拽*/ Vue.directive("Drag", (el) > {const move…

MySQL表内容的增删查改

在前面几章的内容中我们学习了数据库的增删查改,表的增删查改,这一篇我们来学习一下对表中的内容做增删查改。 CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 1.创建Create 我们先创建…

深入解析MD5哈希算法:原理、应用与安全性

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 本文将深入探讨MD5哈希算法的工作原理、应用场景以及安全性问题。我们将了解MD5如何生成固定长度的哈希值,以及它在数…

BUG未解之谜01-指针引用之谜

在leetcode里面刷题出现的问题,当我在sortedArrayToBST里面给root赋予初始值NULL之后,问题得到解决! 理论上root是未初始化的变量,然后我进入insert函数之后,root引用的内容也是未知值,因此无法给原来的二叉…

could not resolve com.android.tools.build:gradle:4.1.1.

一、报错信息 could not resolve com.android.tools.build:gradle:4.1.1.其实是因为你的网络不能从AS工程提供的mavenCentral()、google()和jcenter()等仓库下载相应的依赖。 二、解决方法 在build.gradle(Project)中,在原先的maven仓库前加上阿里云镜像源。这里…

如何遍历整个DOM树

原文链接:[如何遍历整个DOM树(外网原文链接)](https://chrisdeo.github.io/2019/07/20/%E5%A6%82%E4%BD%95%E9%81%8D%E5%8E%86%E6%95%B4%E4%B8%AADOM%E6%A0%91/) 作为前端开发工程师,我们大部分工作内容其实还是围绕着DOM在进行Javascript的编写&#xf…

SQL把统计结果作为条件进行查询

今天在社区看到一个问题如何返回 统计数值,比较简单,分享一下写法: --测试数据 if not object_id(NTempdb..#T) is nulldrop table #T Go Create table #T([name] nvarchar(21),[year] nvarchar(21),[time] nvarchar(22)) Insert #T select …

手写SpringBoot(二)之动态切换Servlet容器

系列文章目录 手写SpringBoot(一)之简易版SpringBoot 手写SpringBoot(二)之动态切换Servlet容器 手写SpringBoot(二)之动态切换Servlet容器 文章目录 系列文章目录手写SpringBoot(二&#xff…

KubeSphere简单介绍及安装使用

KubeSphere 概述 官网地址:https://kubesphere.io/zh/ 什么是 kubesphere KubeSphere 是一个开源的多云容器管理平台,旨在简化企业级 k8s 集群的部署、管理和运维。它提供了一个可视化的管理界面,帮助用户更轻松地管理和监控 k8s 集群&…