中國(guó)傳媒大學(xué)南廣學(xué)院傳媒技術(shù)學(xué)院 周曉梅 宋燕燕
?
基于云存儲(chǔ)的校園文件管理系統(tǒng)研究與應(yīng)用
中國(guó)傳媒大學(xué)南廣學(xué)院傳媒技術(shù)學(xué)院周曉梅宋燕燕
【摘要】多媒體網(wǎng)絡(luò)教學(xué)方式已逐漸成為高校教學(xué)改革中的主要教學(xué)模式,針對(duì)如何有效管理在教學(xué)過(guò)程中產(chǎn)生的大量多媒體教學(xué)資源的問(wèn)題,提出將云存儲(chǔ)技術(shù)應(yīng)用于校園文件管理系統(tǒng)中。在分析國(guó)內(nèi)主要云存儲(chǔ)特點(diǎn)的基礎(chǔ)上,探討利用七牛云存儲(chǔ)構(gòu)建校園文件管理系統(tǒng)的可行性和優(yōu)勢(shì)。利用七牛云存儲(chǔ)提供的SDK及API設(shè)計(jì)各個(gè)功能模塊,并給出了應(yīng)用實(shí)例。實(shí)驗(yàn)表明,基于云存儲(chǔ)的校園文件管理系統(tǒng)不僅能有效的管理海量的多媒體數(shù)據(jù),更能節(jié)約學(xué)校的軟硬件投資成本,較好地滿足用戶需求。
【關(guān)鍵詞】云存儲(chǔ);文件管理系統(tǒng);HTML5;七牛
隨著寬帶網(wǎng)絡(luò)的普及以及帶寬的不斷加大,網(wǎng)絡(luò)多媒體教學(xué)方式正在不斷的蓬勃發(fā)展。與傳統(tǒng)的教學(xué)方式不同,網(wǎng)絡(luò)教學(xué)可以在同一時(shí)間向任何地點(diǎn)的用戶提供多媒體教學(xué)信息,為在校師生提供全新的教學(xué)服務(wù)。網(wǎng)絡(luò)教學(xué)已經(jīng)成為傳統(tǒng)教學(xué)極大的補(bǔ)充和延伸,為學(xué)生提供學(xué)習(xí)課外知識(shí)及交流的平臺(tái)[1-2]。但是,隨著網(wǎng)絡(luò)教學(xué)的發(fā)展,教學(xué)過(guò)程中將產(chǎn)生越來(lái)越多的多媒體教學(xué)文件,其中包括教學(xué)課件、學(xué)生作品、教學(xué)視頻、復(fù)習(xí)資料、畢業(yè)設(shè)計(jì)等。但是,目前任何校園網(wǎng)信息平臺(tái)均沒(méi)有提供完善的文件管理解決方案來(lái)有效的管理這些寶貴的教學(xué)文件,而是將文件以單一、零散的“資源孤島”的形式存儲(chǔ)在PC機(jī)、FTP服務(wù)器、U盤或者光盤中。長(zhǎng)此以往導(dǎo)致文件越來(lái)越多,管理越來(lái)越混亂,這樣既不利于優(yōu)秀資源的充分利用,又存在資源丟失的風(fēng)險(xiǎn)。
本文提出將云存儲(chǔ)技術(shù)應(yīng)用于校園文件管理系統(tǒng)中,與傳統(tǒng)的存儲(chǔ)方式相比,云存儲(chǔ)提供的是存儲(chǔ)服務(wù),避免了存儲(chǔ)平臺(tái)的重復(fù)建設(shè),節(jié)約了昂貴的軟硬件基礎(chǔ)設(shè)施投資。因此,基于云存儲(chǔ)的校園文件管理系統(tǒng)將全面取代校園FTP系統(tǒng)成為應(yīng)用最廣泛的校園第二信息平臺(tái)。
云存儲(chǔ)是云計(jì)算的存儲(chǔ)部分,即虛擬化的、易于擴(kuò)展的存儲(chǔ)資源池[3]。當(dāng)云計(jì)算系統(tǒng)運(yùn)算和處理的核心是大量數(shù)據(jù)的存儲(chǔ)和管理時(shí),那么云計(jì)算系統(tǒng)就轉(zhuǎn)變成為一個(gè)云存儲(chǔ)系統(tǒng),所以云存儲(chǔ)是一個(gè)以數(shù)據(jù)存儲(chǔ)和管理為核心的云計(jì)算系統(tǒng)[4-6]。
存儲(chǔ)在云端的數(shù)據(jù)可以隨時(shí)隨地訪問(wèn)讀取,節(jié)省本地存儲(chǔ)因數(shù)據(jù)增長(zhǎng)帶來(lái)的額外硬件添置成本,基本不用考慮數(shù)據(jù)備份等維護(hù)問(wèn)題,只需要選擇合適的云存儲(chǔ)服務(wù)提供商以及按需支付相關(guān)費(fèi)用即可[7]。云存儲(chǔ)不僅提供了文件訪問(wèn)接口,還支持海量數(shù)據(jù)管理并提供公共服務(wù)支撐功能,以方便云存儲(chǔ)系統(tǒng)后臺(tái)數(shù)據(jù)的維護(hù)。
目前,國(guó)內(nèi)市場(chǎng)做云主機(jī)的基本都有專門的存儲(chǔ)系統(tǒng),代表性的有七牛云、又拍云、金山云等,云存儲(chǔ)已經(jīng)成為未來(lái)存儲(chǔ)發(fā)展的一種趨勢(shì)。表1中對(duì)國(guó)內(nèi)主要云存儲(chǔ)服務(wù)商提供的云存儲(chǔ)服務(wù)性能進(jìn)行分析比較。
表1 國(guó)內(nèi)主要云存儲(chǔ)提供商分析對(duì)比表
和其他的云存儲(chǔ)服務(wù)不同,七牛云存儲(chǔ)同時(shí)支持上傳下載的雙向斷點(diǎn)續(xù)傳,即使在極差的移動(dòng)網(wǎng)絡(luò)中照樣可以讀寫(xiě)數(shù)據(jù),從而保障用戶體驗(yàn)。并且支持就近上傳,當(dāng)用戶在上傳數(shù)據(jù)時(shí)可以選擇任意的IDC進(jìn)行就近上傳,從而保證了上傳的速度。七牛云存儲(chǔ)國(guó)內(nèi)首創(chuàng)了在線音視頻/流媒體處理服務(wù),提供優(yōu)質(zhì)的音視頻分發(fā)網(wǎng)絡(luò),支持常見(jiàn)的音視頻格式轉(zhuǎn)換,支持視頻幀提取,可以提取視頻任意時(shí)間點(diǎn)的截圖。另外,七牛云存儲(chǔ)提供了一系列完整API和SDK示例教程,文檔較為清晰[8]。
綜上考慮,采用七牛云存儲(chǔ)作為校園文件管理系統(tǒng)中非結(jié)構(gòu)化數(shù)據(jù)的主要存儲(chǔ)平臺(tái)。
本系統(tǒng)利用七牛云存儲(chǔ)服務(wù)提供的SDK、API及管理平臺(tái),采用HTML5標(biāo)準(zhǔn)作為客戶端主要技術(shù)架構(gòu),在.net平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)基于云存儲(chǔ)的校園文件管理系統(tǒng)。
系統(tǒng)包含學(xué)生、教師、管理員三種身份認(rèn)證,管理員擁有最高權(quán)限,不僅可以修改學(xué)生及教師的信息,還可以對(duì)云存儲(chǔ)中的所有文件進(jìn)行修改,圖1中顯示了基于云存儲(chǔ)的校園文件管理系統(tǒng)的主要功能模塊。
圖1 系統(tǒng)主要功能圖
在本系統(tǒng)中,非結(jié)構(gòu)化的教學(xué)文件不是存放于學(xué)校的服務(wù)器中,而是存放在七牛云存儲(chǔ)的服務(wù)器中,這樣既節(jié)省了學(xué)校服務(wù)器的空間,也可以使學(xué)生隨時(shí)隨地通過(guò)互聯(lián)網(wǎng)登錄下載文件。同時(shí),系統(tǒng)還可以在線編輯Office、圖片等文件,支持流媒體音視頻文件在線播放等。
云文件管理系統(tǒng)主要為教學(xué)過(guò)程中產(chǎn)生的海量的多媒體文件提供一個(gè)有效的管理平臺(tái),方便在校師生上傳、檢索、編輯及發(fā)布教學(xué)資源,并通過(guò)客戶端為用戶提供下載、查詢等服務(wù)。本系統(tǒng)采用七牛云存儲(chǔ)提供的SDK,使用.net為主要服務(wù)器端技術(shù),利用C#作為與七牛云存儲(chǔ)的交互語(yǔ)言。
3.1 準(zhǔn)備工作
1)使用七牛云存儲(chǔ)之前必須先下載安裝七牛SDK,七牛SDK為第三方應(yīng)用提供了簡(jiǎn)單易用的API調(diào)用服務(wù),使第三方客戶端無(wú)需了解復(fù)雜的驗(yàn)證機(jī)制即可進(jìn)行授權(quán)、上傳、下載等文件操作。
2)訪問(wèn)七牛云存儲(chǔ)提供的API需要通過(guò)注冊(cè)擁有一對(duì)有效的ACCESS_KEY 和SECRET_KEY用來(lái)進(jìn)行簽名認(rèn)證,ACCESS_KEY 和SECRET_KEY是用戶訪問(wèn)七牛云存儲(chǔ)API的身份標(biāo)識(shí)。
3)在系統(tǒng)的編譯配置文件web.config中添加bucket、domain等配置項(xiàng)。
其中,bucket是存放“文件”(云存儲(chǔ)稱之為object,)的空間,“空間”是資源的組織管理單位,相當(dāng)于文件系統(tǒng)中的文件夾。所有的object都必須存放到某個(gè)bucket中,object是存儲(chǔ)在bucket中的數(shù)據(jù),可以把object看作要被存儲(chǔ)的文件。
在bucket中的每個(gè)object必須有且只有一個(gè)key。bucket名稱和object的key共同組成七牛云存儲(chǔ)中存儲(chǔ)的對(duì)象的唯一標(biāo)識(shí)。
domain是bucket所對(duì)應(yīng)的域名,用戶可以使用七牛云存儲(chǔ)提供的默認(rèn)域名,也可以自定義域名并綁定到bucket上,通過(guò)自定義的域名訪問(wèn)七牛云存儲(chǔ)。
配置完成后,程序啟動(dòng)時(shí)調(diào)用Qiniu.Conf. Config.Init()進(jìn)行初始化。
3.2 文件列表
七牛云存儲(chǔ)為不同平臺(tái)的用戶提供了不同的SDK,其中包括IOS、Android、Java、C#、Php等,不同的SDK中提供了文件上傳、下載、查詢、刪除等API。文件列表模塊通過(guò)調(diào)用七牛云存儲(chǔ)的獲取文件列表接口,可以列出七牛云存儲(chǔ)空間下所有文件的信息。
(1)七牛云存儲(chǔ)提供的List接口
七牛云存儲(chǔ)提供的文件列表List接口如下所示,其中bucket參數(shù)代表七牛云存儲(chǔ)中空間的名稱。在使用資源列表接口之前必須引入Qiniu.RSF命名空間。
(2)修改List接口
七牛提供的List接口是void型的,因此需要對(duì)List接口進(jìn)行修改,轉(zhuǎn)換為DataTable類型,這樣方便與前臺(tái)的Repeater列表控件進(jìn)行數(shù)據(jù)綁定,可以更形象的將空間中的所有文件展示給用戶。
public static DataTable List(string bucket){}
定義數(shù)據(jù)表dt,并在數(shù)據(jù)表中添加七牛云存儲(chǔ)中文件的名稱、文件大小、文件上傳時(shí)間等信息。
dt.Rows.Add(new object[]{item.Key,item. FSize,item.Mime,item.PutTime});
七牛云存儲(chǔ)中的文件提供了Key、FSize、Mime、PutTime等信息。其中, Key字段是文件的唯一標(biāo)識(shí), FSize字段代表文件的大小,以字節(jié)(Byte)為單位。mime字段代表文件的類型,七牛云存儲(chǔ)是以MIME信息表達(dá)的文件類型。MIME(Multipurpose Internet Mail Extensions)的含義是多用途互聯(lián)網(wǎng)郵件擴(kuò)展類型,是設(shè)定某種擴(kuò)展名的文件用一種應(yīng)用程序來(lái)打開(kāi)的方式類型,當(dāng)該擴(kuò)展名文件被訪問(wèn)的時(shí)候,瀏覽器會(huì)自動(dòng)使用指定應(yīng)用程序來(lái)打開(kāi)。PutTime字段代表文件上傳時(shí)的服務(wù)器端Epoch時(shí)間戳,以100納秒為單位,例如值為13603956734587420的時(shí)間對(duì)應(yīng)實(shí)際時(shí)間為2013-02-09 15:41:13。
(3)調(diào)用List接口
在系統(tǒng)前臺(tái)界面中使用Repeater列表控件顯示文件的信息,并在Repeater控件的模板中添加文件名、文件類型、文件大小、上傳時(shí)間等列,定義Repeater控件的ID為rptList。
首先調(diào)用文件列表接口List,訪問(wèn)七牛云存儲(chǔ)中的“ngxy002”空間,將空間中的所有文件信息返回到數(shù)據(jù)表dt中。
DataTable dt = QiNiuHelper.List("ngxy002");
并通過(guò)調(diào)用GetDateTime方法,將UNIX時(shí)間戳轉(zhuǎn)換成時(shí)間。
DateTime dtResult = GetDateTime(double. Parse(dt.Rows[i]["uploadtime"].ToString().Substring(0, 10)));
實(shí)驗(yàn)測(cè)試界面如圖2所示:
圖2 文件列表界面
其中,文件類型顯示的是七牛云存儲(chǔ)的MIME類型,因此在文件列表界面中的word文件類型為application/msword。這樣在下載七牛云存儲(chǔ)中的文件時(shí)就可以通過(guò)MIME類型告訴瀏覽器該文件需要用什么程序來(lái)處理。
本文結(jié)合校園的實(shí)際情況,對(duì)比分析了國(guó)內(nèi)主要云存儲(chǔ)服務(wù)的技術(shù)參數(shù),選用七牛云存儲(chǔ)為主要存儲(chǔ)平臺(tái),搭建了基于云存儲(chǔ)的校園文件管理系統(tǒng)。該系統(tǒng)解決了不斷產(chǎn)生的海量教學(xué)文件管理問(wèn)題,利用云存儲(chǔ)技術(shù)有效的降低了學(xué)校投入成本,具有很強(qiáng)的技術(shù)前景及經(jīng)濟(jì)效益,為解決目前及今后各學(xué)校構(gòu)建信息平臺(tái)的技術(shù)難題與實(shí)際工作中的問(wèn)題有十分有益的指導(dǎo)作用。
隨著高校數(shù)字化移動(dòng)應(yīng)用層次的不斷提高,校園中文檔存儲(chǔ)共享需求突顯,如何構(gòu)建校園私有云與當(dāng)前公有云存儲(chǔ)并存的問(wèn)題將是下一步建設(shè)工作的重點(diǎn)。
總而言之,云存儲(chǔ)將對(duì)高校教學(xué)方式改革產(chǎn)生巨大的影響,將是業(yè)界發(fā)展的大趨勢(shì)。
參考文獻(xiàn)
[1]秦利波,宋言東.應(yīng)用型本科院校網(wǎng)絡(luò)教學(xué)平臺(tái)構(gòu)建模式研究[J].現(xiàn)代教育技術(shù),2015(3):76-83.
[2]McAndrew P,Scanlon E.Open learning at a distance:lessons for struggling MOOCs[J].Science,2013,3 42(6165):1450-1451.
[3]趙鐵柱,袁華強(qiáng).高性能的云存儲(chǔ)安全網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(11):135-138.
[4]Wikipedia.Cloud Storage[EB/OL].Wikipedia,2015, https://it.wikipedia.org/wiki/Cloud_storage.
[5]Wikipedia.Cloud Computing[EB/OL].Wikipedia, 2015,https://it.wikipedia.org/wiki/Cloud_computing.
[6]Yu Peng,Yu Zhang,Xiong Lv,et al.Cloud Storage Service in Digital Campus[C].Proceedings of 2013 IEEE 4th International Conference on Software Engineering and Service Science,2013:368-371.
[7]Drago I,Mellia M,M Munafo M,et al.Inside dropbox: understanding personal cloud storage services[C]// Proceedings of the 2012 ACM conference on Internet measurement conference.ACM,2012:481-494.
[8]魏偉.七牛云存儲(chǔ):三年磨一劍及背后核心技術(shù)解析[EB/OL].CSDN,2014,http://www.csdn.net/ article/2014-11-18/2822691.
周曉梅(1980—),女,江蘇南京人,碩士,講師,主要研究方向:云存儲(chǔ)、信息管理。
宋燕燕(1978—),女,碩士,講師,主要研究方向:云計(jì)算、虛擬現(xiàn)實(shí)。
作者簡(jiǎn)介:
基金項(xiàng)目:江蘇省高校自然科學(xué)研究項(xiàng)目(14KJD520011);江蘇省高校哲學(xué)社會(huì)科學(xué)研究基金指導(dǎo)項(xiàng)目(2014SJD324);江蘇省高校自然科學(xué)研究項(xiàng)目(15KJD5200007)。