0引言
随着宽带网络的普及以及带宽的不断加大,网络多媒体教学方式正在不断的蓬勃发展。与传统的教学方式不同,网络教学可以在同一时间向任何地点的用户提供多媒体教学信息,为在校师生提供全新的教学服务。网络教学已经成为传统教学极大的补充和延伸,为学生提供学习课外知识及交流的平台。但是,随着网络教学的发展,教学过程中将产生越来越多的多媒体教学文件,其中包括教学课件、学生作品、教学视频、复习资料、毕业设计等。但是,目前任何校园网信息平台均没有提供完善的文件管理解决方案来有效的管理这些宝贵的教学文件,而是将文件以单一、零散的“资源孤岛”的形式存储在PC机、FTP服务器、U盘或者光盘中。长此以往导致文件越来越多,管理越来越混乱,这样既不利于优秀资源的充分利用,又存在资源丢失的风险。
本文提出将云存储技术应用于校园文件管理系统中,与传统的存储方式相比,云存储提供的是存储服务,避免了存储平台的重复建设,节约了昂贵的软硬件基础设施投资。因此,基于云存储的校园文件管理系统将全面取代校园FTP系统成为应用最广泛的校园第二信息平台。
1云存储技术
云存储是云计算的存储部分,即虚拟化的、易于扩展的存储资源池。当云计算系统运算和处理的核心是大量数据的存储和管理时,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。
存储在云端的数据可以随时随地访问读取,节省本地存储因数据增长带来的额外硬件添置成本,基本不用考虑数据备份等维护问题,只需要选择合适的云存储服务提供商以及按需支付相关费用即可m。云存储不仅提供了文件访问接口,还支持海量数据管理并提供公共服务支撑功能,以方便云存储系统后台数据的维护。
目前,国内市场做云主机的基本都有专门的存储系统,代表性的有七牛云、又拍云、金山云等,云存储已经成为未来存储发展的一种趋势。表1中对国内主要云存储服务商提供的云存储服务性能进行分析比较。
和其他的云存储服务不同,七牛云存储同时支持上传下载的双向断点续传,即使在极差的移动网络中照样可以读写数据,从而保障用户体验。并且支持就近上传,当用户在上传数据时可以选择任意的IDC进行就近上传,从而保证了上传的速度。七牛云存储国内首创了在线音视频/流媒体处理服务,提供优质的音视频分发网络,支持常见的音视频格式转换,支持视频帧提取,可以提取视频任意时间点的截图。另外,七牛云存储提供了一系列完整API和SDK示例教程,文档较为清晰。
综上考虑,采用七牛云存储作为校园文件管理系统中非结构化数据的主要存储平台。
2云文件管理系统体系结构
本系统利用七牛云存储服务提供的SDK、API及管理平台,采用HTML5标准作为客户端主要技术架构,在.net平台上设计并实现基于云存储的校园文件管理系统。
系统包含学生、教师、管理员三种身份认证,管理员拥有最高权限,不仅可以修改学生及教师的信息,还可以对云存储中的所有文件进行修改,图1中显示了基于云存储的校园文件管理系统的主要功能模块。
在本系统中,非结构化的教学文件不是存放于学校的服务器中,而是存放在七牛云存储的服务器中,这样既节省了学校服务器的空间,也可以使学生随时随地通过互联网登录下载文件。同时,系统还可以在线编辑Office、图片等文件,支持流媒体音视频文件在线播放等。
3云文件管理系统的研究与实现
云文件管理系统主要为教学过程中产生的海量的多媒体文件提供一个有效的管理平台,方便在校师生上传、检索、编辑及发布教学资源,并通过客户端为用户提供下载、查询等服务。本系统采用七牛云存储提供的SDK,使用.net为主要服务器端技术,利用C#作为与七牛云存储的交互语言。
3.1准备工作
1)使用七牛云存储之前必须先下载安装七牛SDK,七牛SDK为第三方应用提供了简单易用的API调用服务,使第三方客户端无需了解复杂的验证机制即可进行授权、上传、下载等文件操作。
2)访问七牛云存储提供的API需要通过注册拥有一对有效的ACCESS-KEY和SECRET-KEY用来进行签名认证,ACCESS-KEY和SECRET-KEY是用户访问七牛云存储API的身份标识。
3)在系统的编译配置文件web.config中添加bucket、domain等配置项。
其中,bucket是存放“文件”(云存储称之为object,)的空间,“空间”是资源的组织管理单位,相当于文件系统中的文件夹。所有的object都必须存放到某个bucket中,object是存储在bucket
中的数据,可以把object看作要被存储的文件。
在bucket中的每个object必须有且只有一个key。bucket名称和object的key共同组成七牛云存储中存储的对象的唯一标识。
domain是bucket所对应的域名,用户可以使用七牛云存储提供的默认域名,也可以自定义域名并绑定到bucket上,通过自定义的域名访问七牛云存储。
配置完成后,程序启动时调用Qiniu.Conf.Config.Init()进行初始化。
3.2文件列表
七牛云存储为不同平台的用户提供了不同的SDK,其中包括IOS、Android、Java、C#、Php等,不同的SDK中提供了文件上传、下载、查询、删除等API。文件列表模块通过调用七牛云存储的获取文件列表接口,可以列出七牛云存储空间下所有文件的信息。
(1)七牛云存储提供的List接口
七牛云存储提供的文件列表List接口如下所示,其中bucket参数代表七牛云存储中空间的名称。在使用资源列表接口之前必须引入Qinm.RSF命名空间。
(2)修改List接口
七牛提供的List接口是void型的,因此需要对List接口进行修改,转换为DataTable类型,这样方便与前台的Repeater列表控件进行数据绑定,可以更形象的将空间中的所有文件展示给用户。publicstaticDataTableList(stringbucket){}
定义数据表dt,并在数据表中添加七牛云存储中文件的名称、文件大小、文件上传时间等信息。
dt.Rows.Add(newobject[]{item.Key,item.FSize,item.Mime,item.PutTime});
七牛云存储中的文件提供了Key、FSize、Mime、PutTime等信息。其中,Key字段是文件的唯一标识,FSize字段代表文件的大小,以字节(Byte)为单位。mime字段代表文件的类型,七牛云存储是以MIME信息表达的文件类型。MIME(MultipurposeInternetMailExtensions)的含义是多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。PutTime字段代表文件上传时的服务器端Epoch时间戳,以100纳秒为单位,例如值为13603956734587420的时间对应实际时间为2013-02-0915:41:13。
(3)调用List接口在系统前台界面中使用Repeater列表控件显示文件的信息,并在Repeater控件的模板中添加文件名、文件类型、文件大小、上传时间等列,定义Repeater控件的ID为rptList。
首先调用文件列表接口List,访问七牛云存储中的“ngxy002”空间,将空间中的所有文件信息返回到数据表dt中。
DataTabledt=QiNiuHelper.List("ngxy002");
并通过调用GetDateTime方法,将UNIX时间戳转换成时间。
DateTimedtResult=GetDateTime(double.Parse(dt.Rows[i]["uploadtime"].ToString().Substring(0,10)));
其中,文件类型显示的是七牛云存储的MIME类型,因此在文件列表界面中的word文件类型为application/msword。这样在下载七牛云存储中的文件时就可以通过MIME类型告诉浏览器该文件需要用什么程序来处理。
4结束语
本文结合校园的实际情况,对比分析了国内主要云存储服务的技术参数,选用七牛云存储为主要存储平台,搭建了基于云存储的校园文件管理系统。该系统解决了不断产生的海量教学文件管理问题,利用云存储技术有效的降低了学校投入成本,具有很强的技术前景及经济效益,为解决目前及今后各学校构建信息平台的技术难题与实际工作中的问题有十分有益的指导作用。随着高校数字化移动应用层次的不断提高,校园中文档存储共享需求突显,如何构建校园私有云与当前公有云存储并存的问题将是下一步建设工作的重点。
总而言之,云存储将对高校教学方式改革产生巨大的影响,将是业界发展的大趋势。