APP下载

基于Swift的个人网盘系统的探究与设计实现

2021-03-07韩思宇纪松江胡海南李茂毅

红豆教育 2021年33期
关键词:扩展性云盘网盘

韩思宇 纪松江 胡海南 李茂毅

【摘要】Swift作为OpenStack云平台的重要组件,Swift作为能够提供RESTful HTTP 接口的对象存储系统,同时具备数据访问灵活,数据持久性,高扩展性等优势,被国内外各大企业利用并开发。本文基于电子科技大学成都学院PBL的教学模式,将真实企业项目运用到实际的教学环境中,同时将利用Swift提供的API接口,采用Python的Django框架,并调用Swift API接口,能够利用Web界面并对Swift网盘进行上传,下载,预览文件的功能。

1、需求背景分析

伴随着大数据时代到来和信息化的飞速发展,人们对数据依赖程度越来越高,数据安全性和数据的存储方式成为了目前人们重视的热点问题,快速发展的云存储技术为人们数据存储带来了极大的便利。众所熟知的百度云盘,360云盘,腾讯云盘等都提供了方便,快捷的云存储服务,解决人们对存储的需求,许多企业由于保密和安全,会组建专属于企业内部使用的网络,但这些企业在文件储存上存在一下的问题:

1.1数据保障低

现在企业很多都是采用单机储存的方式,同时企业职工习惯于将重要文件储存于单机物理机中。由于,物理机面临各种不确定因素,存储能力有限,存储拓展性不强,为文件存储带来极大的危险性和不确定性。

1.2数据共享能力低

文件共享可通过FTP,共享文件,移动存储设备等方式去实现,但是针对于企业职工,使用FTP和文件的方式难以掌握,于是企业内部往往采用移动存储设备去满足文件共享,但是移动存储设备因其安全性低,易受到病毒的感染,会带来企业内部电脑的交叉感染,随之产生文件安全性隐患。

1.3数据利用率低

由于文件存储在各个物理机中,使得企业很难综合的,集中化的管理企业文件,同时降低了企业内部的工作效率,使得企业对数据利用程度不高,很多数据的潜在价值没有发挥出来。

此时企业采用云盘是解决企业企业数据存储和企业利用数据的很好选择,同时企业自己搭建专有云盘变得尤为重要。通过企业私有云盘能够有助于实现企业内部的数据共享,数据存储和企业工作协同能力的提供。

2、常见存储系统分析

在目前的市面上,存在很多的主流的云存储服务,百度云,网易云,阿里云,腾讯云等相继崛起,在国内外的云存储中占一席之地。究其分析,无论何种存储服务或者是设备都可以分为:块存储,文件存储和对象存储。目前采用DAS方式存储的设备是采用的是文件存储的方式;磁盘的阵列方式是采用块存储方式;OpenStack采用的是对象存储的方式,最直接的体现就是Swift(对象存储系统)。他们之间因其存储的组成部件,数据的管理方式,数据的访问方式,数据的冗余方式的不同,但是三种不同的存储方式也有各自的优势,比如:

块存储:块存储具备低延迟,带宽高的优势,常常用于高性能的计算,但是由于采用SAN系统架构的网络,因其成本高,扩展性差,灵活性不强,数据共享能力低,不能较好的应用和满足成千上万台物理机的系统。

文件存储:文件存储是把对文件的操作映射成对磁盘块的操作,比如对文件的读,写,打开和关闭。其中以文件为传输协议,通过TCP/IP实现网络间的数据交换,文件存储简单,扩展性好,价格便宜,用户管理简单。但是由于采用的是文件传输协议,本身就带来开支大,带宽低,网络延迟高,在高性能集群中不能较好的应用。

对象存储:对象存储采用的是内容寻址的系统简化对存储系统的管理,确认了存储系統的存储内容的一致性,提供了较好的数据的可扩展性,同时具备可以高速直接访问磁盘文件和分布式文件访问的特点。对象存储能够确保内容的可靠性,能够提供全局唯一,位置独立的标识符,扩展性明显高于采取块存储和文件存储的系统,所以非常适用于文件的归档、备份、海量文件共享、科学和研究数据,以及数字媒体等应用场景。

3、Swift网盘存储平台架构

Swift是OpenSatck的开源项目,被称为对象存储,而Swift使用标准化的服务器存储数据,是一个用于长久存储静态数据,可以提供检索,更新的数据服务,Swift提供了强大的扩展性,冗余性和持久性。

3.1功能设计

根据网盘功能要求,具体实现思路如下:

OpenSatck里任意租户,租户下有很多的用户,针对任意用户,能够提供支持用户的登录和注册。针对不同的用户角色,能够提供相应的服务,具体功能设计如下,注册:实现用户的注册;登录:实现用户的登录;容器:实现列出所有容器;容器:实现创建容器;容器:实现查看容器;列出容器下文件:实现列出容器下的所有文件;文件的上传:实现文件的上传;文件的下载:实现文件的下载;文件的预览:实现文件的预览。

系统的总体架构设计如图1Swift系统架构逻辑设计如下:

整个Swift网盘采用Python的Django框架,Django是一个开源的Web应用框架,其中采用的是MVC的软件设计模式,里面包含了模型M,视图V和控制器C,遵守MVC的设计,但是在Django中,更加注重的是MTC的模式,即模型M,模板T和视图C,各自功能如图2所示如下:

3.2功能实现

由于文章的篇幅有限,本文将网盘实现的代码所代表的重点功能,比如:登录,文件的上传和预览功能详细介绍。Swift网盘登录功能实现界面如图3登录界面所示:

4、总结

目前OpenStack在国内很流行,Swift作为一个很重要的组件,因其扩展性好,高速访问等优势,Swift对象存储不但在OpenStack中占有重要地位,同时Swift拥有丰富的API接口,能够对外提供重要的存储服务。无论是企业,还是学校研究Swift对象存储并基于Swift对象存储开发Swift网盘具有广泛且具深远的意义。本文所讨论的Swift网盘设计与实现就是为这个存储服务提供了良好且方便高效的解决方案。

猜你喜欢

扩展性云盘网盘
云盘山
云盘不再单打独斗,阿里云盘生态体验
提高初中阶段学生英语扩展性阅读能力策略分析
高中物理如何充分利用扩展性栏目
比ITX还小华擎推首款Mini—STX主板
网络教学平台的扩展性研究
云端难题巧解决
阿里发布SSD云盘 性能大幅提升
网盘资源集中管理
网盘如何知道你在分享侵权文件