劉瑋瑋
(淮安淮網科技有限公司,江蘇淮安,223001)
云盤存儲近幾年己被廣泛的應用在企業和個人的數據存儲中。云盤存儲不再像硬盤存儲設備那樣必須隨身攜帶,人們可以在任意時刻通過互聯網獲取到存儲在云盤上的數據。如今,移動互聯網技術迅猛發展。傳統的互聯網與移動通信技術的完美結合,使得移動設備可以通過WIFI、3G、4G技術連接到網絡訪問數據資源。本文通過研究Openstack+Swift的系統架構,提出了基于該架構之上的偽文件系統,并實現了偽文件系統中各項操作,將這些復雜的后臺實現技術與算法進行封裝,讓用戶在客戶端上做簡單的操作就可以完成復雜的云存儲過程,實現云盤的各項操作。

圖1 系統結構設計圖
使用Openstack的云存儲Swift,構建網盤客戶端APP,實現常規的文件操作。常規的網盤功能包括登錄、獲取文件列表、分類、上傳、新建、拍照上傳、移動、復制、下載、刪除、還原、打開和查找等。
(1)Swift云存儲云端服務:能夠連接OpenStack Swift云存儲,需要在Android端引入SDK,同樣使用上面的 SDK項目包(openstack-java-sdk)。目前 SDK是成熟的工程,直接引入項目包。實現的原理基于HTTP協議連接云存儲Swift Restful服務。同樣使用SKD項目包中封裝的OpenStackClientService進行異步網絡操作。
(2)登錄:還原和登錄各定義一個Activity。Swift賬戶管理使用Keystone完成,這里需要Keystone的訪問SDK,openstack-java-sdk提供了對OpenStack各服務訪問的接口,可以直接使用。
(3)文件系統:目前SDK提供了對Swift云存儲的操作,云存儲不是一種文件系統(File System),為了實現文件,基于Swift的SDK接口,封裝模擬文件操作的類文件系統,命名為OssFilesystem。
(4)主界面:使用一個Activity來完成主界面,導航通過NavigationView控件實現、文件列表通過Fragment來實現。不同的分類操作不同,我們使用不同的Fragment實現,降低程序的復雜性。
(5)所有文檔:實現展示所有文件類別,采用Fragment。
(6)分類:實現文檔、圖片、視頻分類的文件列表,采用Fragment。
(7)回收站:實現回收站的文件列表,采用Fragment。
(8)文件上傳:上傳本地文件,實現一個本地存儲文件導航選擇窗口Activity,完成文件選擇和上傳。工具類,包括文件操作,處理本地緩存,一個文件打開時,需要下載本地。同時了提供性能,對當前操作文件路徑進行緩存,跟蹤狀態信息。

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());}
近年來信息化的飛速發展催生了大數據時代的到來,企業面臨著大量數據存儲所帶來的硬件設施缺乏、維護成本高等難題。面對龐大的云存儲市場,電信運營商要想抓住機遇,把云存儲服務轉化成自己新的業務增長點,關鍵是要利用自身資源優勢構建一種可快速彈性擴展、靈活管理的開放式云存儲服務平臺。本文通過研究Openstack+Swift的系統架構,提出了基于該架構之上的偽文件系統,并實現了偽文件系統中各項操作,為企業數據存儲提供新的途徑。