劉瑋瑋
(淮安淮網(wǎng)科技有限公司,江蘇淮安,223001)
云盤存儲近幾年己被廣泛的應(yīng)用在企業(yè)和個人的數(shù)據(jù)存儲中。云盤存儲不再像硬盤存儲設(shè)備那樣必須隨身攜帶,人們可以在任意時刻通過互聯(lián)網(wǎng)獲取到存儲在云盤上的數(shù)據(jù)。如今,移動互聯(lián)網(wǎng)技術(shù)迅猛發(fā)展。傳統(tǒng)的互聯(lián)網(wǎng)與移動通信技術(shù)的完美結(jié)合,使得移動設(shè)備可以通過WIFI、3G、4G技術(shù)連接到網(wǎng)絡(luò)訪問數(shù)據(jù)資源。本文通過研究Openstack+Swift的系統(tǒng)架構(gòu),提出了基于該架構(gòu)之上的偽文件系統(tǒng),并實(shí)現(xiàn)了偽文件系統(tǒng)中各項(xiàng)操作,將這些復(fù)雜的后臺實(shí)現(xiàn)技術(shù)與算法進(jìn)行封裝,讓用戶在客戶端上做簡單的操作就可以完成復(fù)雜的云存儲過程,實(shí)現(xiàn)云盤的各項(xiàng)操作。
圖1 系統(tǒng)結(jié)構(gòu)設(shè)計圖
使用Openstack的云存儲Swift,構(gòu)建網(wǎng)盤客戶端APP,實(shí)現(xiàn)常規(guī)的文件操作。常規(guī)的網(wǎng)盤功能包括登錄、獲取文件列表、分類、上傳、新建、拍照上傳、移動、復(fù)制、下載、刪除、還原、打開和查找等。
(1)Swift云存儲云端服務(wù):能夠連接OpenStack Swift云存儲,需要在Android端引入SDK,同樣使用上面的 SDK項(xiàng)目包(openstack-java-sdk)。目前 SDK是成熟的工程,直接引入項(xiàng)目包。實(shí)現(xiàn)的原理基于HTTP協(xié)議連接云存儲Swift Restful服務(wù)。同樣使用SKD項(xiàng)目包中封裝的OpenStackClientService進(jìn)行異步網(wǎng)絡(luò)操作。
(2)登錄:還原和登錄各定義一個Activity。Swift賬戶管理使用Keystone完成,這里需要Keystone的訪問SDK,openstack-java-sdk提供了對OpenStack各服務(wù)訪問的接口,可以直接使用。
(3)文件系統(tǒng):目前SDK提供了對Swift云存儲的操作,云存儲不是一種文件系統(tǒng)(File System),為了實(shí)現(xiàn)文件,基于Swift的SDK接口,封裝模擬文件操作的類文件系統(tǒng),命名為OssFilesystem。
(4)主界面:使用一個Activity來完成主界面,導(dǎo)航通過NavigationView控件實(shí)現(xiàn)、文件列表通過Fragment來實(shí)現(xiàn)。不同的分類操作不同,我們使用不同的Fragment實(shí)現(xiàn),降低程序的復(fù)雜性。
(5)所有文檔:實(shí)現(xiàn)展示所有文件類別,采用Fragment。
(6)分類:實(shí)現(xiàn)文檔、圖片、視頻分類的文件列表,采用Fragment。
(7)回收站:實(shí)現(xiàn)回收站的文件列表,采用Fragment。
(8)文件上傳:上傳本地文件,實(shí)現(xiàn)一個本地存儲文件導(dǎo)航選擇窗口Activity,完成文件選擇和上傳。工具類,包括文件操作,處理本地緩存,一個文件打開時,需要下載本地。同時了提供性能,對當(dāng)前操作文件路徑進(jìn)行緩存,跟蹤狀態(tài)信息。
public class AndroidOpenStackClientConnector implements OpenStackClientConnector{for(Map.Entry
urlConnection.setRequestProperty("Content-Type",request.entity().getContentType());if(request.entity().getContentType().equals("application/json")){ObjectMapper mapper=OpenStackClientService.mapper(request.entity().getEntity().getClass());StringWriter writer=new StringWriter();mapper.writeValue(writer,request.entity().getEntity());urlConnection.getOutputStream().write(writer.toString().getBytes());}
近年來信息化的飛速發(fā)展催生了大數(shù)據(jù)時代的到來,企業(yè)面臨著大量數(shù)據(jù)存儲所帶來的硬件設(shè)施缺乏、維護(hù)成本高等難題。面對龐大的云存儲市場,電信運(yùn)營商要想抓住機(jī)遇,把云存儲服務(wù)轉(zhuǎn)化成自己新的業(yè)務(wù)增長點(diǎn),關(guān)鍵是要利用自身資源優(yōu)勢構(gòu)建一種可快速彈性擴(kuò)展、靈活管理的開放式云存儲服務(wù)平臺。本文通過研究Openstack+Swift的系統(tǒng)架構(gòu),提出了基于該架構(gòu)之上的偽文件系統(tǒng),并實(shí)現(xiàn)了偽文件系統(tǒng)中各項(xiàng)操作,為企業(yè)數(shù)據(jù)存儲提供新的途徑。