64位百度云 catia v6_云存储到底是个啥?

    大家好,我是砖家小胖。前段时间由于我团队的某位同学电脑硬盘损坏,导致数据全部丢失。于是小胖回想起以前对Hadoop的HDFS(实际上这玩意并不太适合存储大量的小文件)一段时间研究,准备做一个云存储平台,名字就叫《小胖云存储》。开发这个项目,一是为了对以前HDFS的相关技术做个总结,毕竟实战才是检验技术的最佳方法,二是服务于研究院的同事进行数据备份,以免再次发生类似事件。 1.概念    云存储是一种网上 在线存储 (英语:Cloud storage)的模式,是指通过 集群应用 网络技术 分布式文件 系统等功能,网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供 数据存储 业务访问 功能的一个系统,保证数据的安全性,并节约存储空间。简单来说,云存储就是将储存资源放到云上供人存取的一种新兴方案。使用者可以在任何时间、任何地方,透过任何可连网的装置连接到云上方便地存取数据。(摘自百度百科)     概念这个东西总是搞的那么复杂,其实这玩意通俗的解释就是:本该存在你自己电脑硬盘的数据,现在存储在远程的服务器硬盘上面了,人家做了一系列措施,可以使你的使用数据更安全,更快捷,更方便。你只需要远程发送你要操作的命令就行了,比如删除、下载、上传...等等。
    以后有时间,我会给大家一 一分享现在炒的比较火的概念,到底都是些什么玩意。比如:云服务,云计算、云数据库、云快照、云安全...等等类似的东西。其实这些东西拆开通俗解释,并没有什么神秘的,只是最近各位大佬都在炒大数据和人工智能的概念,媒体有些过度神话了。

2.类别
云存储分两种,一种是像《阿里云》一样,服务于企业用户,通过云服务缴费,阿里云在云端服务器中为企业用户划分出所购买的存储空间(GB),用户可以进行上传下载...等操作。

c20b3ca135ad5379bbca402d80244a10.png

而另一种,就是我们所熟知的《XX网盘》了,这种主要服务于大众客户,用户注册账号,为用户划分存储空间,用户进行上传下载..等操作。对了,还有万恶的VIP开通功能,不交钱限制你速度哦~

e46051fc49b31b4c8be8f14328285217.png

  经过上面的简单介绍,我们已经对云存储有了大概的概念,接下来我们来实现一下面对客户的云存储产品《小胖云存储》。 本篇文章只讲实现思路,不讲具体代码。
3.技术架构
V1.所需技术
web前端:
Html5+Css3+Layui+Js+Jquery+Ajax
服务器后端:
Java+Gradle+SpringBoot+Tomcat+MySql+MyBatis+Redis+Hadoop+HDFS
V2.架构图   

5b85c1f382591016eabbb51b610cd254.png


V3.整体工程目录

b890fae2f5403330884efe86bdf4f622.png


3.权限控制
由于项目前后端开发完全分离,Session会失效,故采用Redis存储token验证方案。
V1.用户注册时,在HDFS集群创建目录:根目录/storage+"/"+用户id,及当前路径,每个用户只可操作自己所属文件夹,不可操作他人目录。
V2.用户登陆时,读取MySql检测账号是否存在,检测密码是否正确。
V3.登陆成功后,获取用户id,向Redis中写入,token以UUID方式生成,设置Redis失效时间为2小时,同时接口返回用户id,token,当前路径currentPath。
V4.以后任何接口请求(除分享),需带着id和token请求服务器后端接口,每个接口请求时,先检测用户登陆状态。
id不存在,过了失效时间2小时,则强制跳转重新登陆页面id存在redis中,则说明账号已登陆,同时验证Token值,id不存在则强制跳转登陆页面。
id存在redis中,但token不一致,说明用户第二次登陆或在其他地点登陆同一账号,则踢用户下线,该页面将强制跳转登陆页面。
代码片段:

75bdc506276bd5a10f660391d4d97d86.png

77c1f15ac98c2cd3ae5de09858d5980d.png

e65e200c36de725819dd36e9466e7a53.png

4.存储部分 V1.目录详情:
用户每次打开目录,传入当前目录路径,返回目录详情,即该当前目录包含多少个子
文件夹和多少个文件,名字分别是什么。

3a34cd570c1ce7a7b8969ff14913469d.png

9988074bc2c552994ea3ef6291fe9671.png

a1564351a604481fca7334c135815cc6.png

V2.文件详情 用户点击属性查看文件,传入当前文件路径,进HDFS集群,查询该文件的块副本备份节点机器 ,文件大小,文件路径等相关信息。

45f6d865f2e1d9a1194cb2d5a8fc553a.png

9c1f786243695b523be0f8e540886668.png

cbec9501ebf2895f2fdb246415315bb1.png

V3. 新建文件夹传入要创建的文件夹路径

5b5a68fb18233e12378f7c49c2667069.png

78d2e3caa8be5bab4e1007c8cf5da82e.png


V4.上传文件传入要上传文件的当前文件夹路径

828358eb49bc3836eb96599857935a60.png

f59afc749ae412a1eeeae6c8b9cfe681.png

9c57f423d41a9388562d81329d4df5f9.png

由于研究院内网为千兆光纤网络,故上传速度可以达到极限110MB/秒的速度

c5358685977cbe29cbe31093a0114fac.png

V5.重命名传入当前文件或文件夹路径

f9cdc020d5ed9dcb551132a88b0b4124.png

ade4eefb739994ede8aea1cd1b9f0428.png

V6.删除文件和文件夹传入当前文件或文件夹路径

ef19dd74b4cf9703154f0d254e909b99.png

ac7ad6d1d8f8613831a4eae60fa9dbda.png

03c815a38d475c43770fc11c2e3c4da2.png

V7.下载文件传入当前文件路径

38c0f4ec2363cc492dd48edaefb470fc.png

ed135475ca118f45aefcf2313337f1ce.png

a960d974f70dee7f66ec197361ded243.png

0802e0e5fbdfaeb4188cd860d9dbf02a.png

由于研究院内网为千兆光纤网络,故下载速度可以达到极限120MB/秒的速度

a0356a189e8c11b5cd237f4937518e8b.png

V8. 退出
传入id和token,删除Redis缓存。

cd86eb8dd187ae583674dba077fdf494.png

e9419092c0e4906d35fd36a207ac3bf7.png

5.分享部分 V1. 用户点击分享时,传入分享文件的当前路径。
V2.生成分享Token,写入Redis 过期时间为7天。ShareBean 包括分享人名字,分享Token,分享的文件当前路径。
V3.前端通过get拼参数ShareTaoken并生成Url链接。
V4.将分享链接发送给其他人。
V5.其他人点击分享链接,打开分享详情页面,获取相关参数数据。
V6.点击下载时,传入ShareToken,通过Token获得ShareToken相关信息(分享人,分享失效到期时间,分享文件的HDFS路径)。
V7.
验证ShareToken是否过期,如果已过期则不允许下载,正常则进入下载阶段。

3369e508df43565b3a9b1835d1dec636.png

659796e5df8c3ef8dcf40a170a754c5a.png

9ca5d62a7fe0f3ff0db43df79af356b5.png

9b5bd684a69ed218d19d193029e03249.png

969f138b01622bb4ca15aa351f5d7d33.png

f6079ef12ddfc77420e2729f2ca9c4da.png

1c356a5fa00aab749895cd13c4cb38f4.png

06a8accb383feffabae0c1051804d401.png

6.测试效果 本项目开发时间为6天,由于时间原因仅实现了云存储基础功能,还有很多功能未开发、未完善,所以并不能称之为一个商业产品,仅仅作为一个HDFS开发练手项目。
特别鸣谢:本团队王永久同学对本项目的Web前端技术支持!

再见~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值