任碩果
(柳州鐵道職業(yè)技術(shù)學(xué)院,廣西 柳州 545007)
一種基于云存儲的Android網(wǎng)盤的設(shè)計與實現(xiàn)
任碩果
(柳州鐵道職業(yè)技術(shù)學(xué)院,廣西 柳州 545007)
文章提出了一種基于云存儲的高性能Android網(wǎng)盤系統(tǒng)架構(gòu),借助OpenStack云計算平臺搭建云存儲服務(wù)器,然后采用Android技術(shù)開發(fā)網(wǎng)盤客戶端,實現(xiàn)文件的上傳、下載、移動、復(fù)制、刪除、還原等功能。文章重點分析了這種基于云存儲Android網(wǎng)盤的功能需求、技術(shù)架構(gòu)和實現(xiàn)路徑。
云存儲;網(wǎng)盤;OpenStack;Android
文章借助OpenStack云平臺,在云平臺上部署云存儲swift服務(wù)器,Android客戶端的網(wǎng)盤連接swift服務(wù)器,實現(xiàn)文件的上傳、下載、移動、復(fù)制、刪除、還原等功能。具體功能需求如下。
(1)登錄:使用賬號和密碼,登錄云存儲swift服務(wù)器。云存儲服務(wù)器swift采用云計算的Keystone服務(wù)實現(xiàn)租戶的管理。
(2)全部文件:顯示當(dāng)前用戶的所有文件列表,主要是常規(guī)格式的電子文檔,圖片文件和視頻文件,需要使用OpenStack提供的云存儲服務(wù)器swift的Restful服務(wù)。
(3)新建文件夾:使用OpenStack提供的swift的Restful服務(wù)在當(dāng)前日錄下新建一個文件夾。
(4)上傳文件:使用OpenStack提供的swift的Restful服務(wù)選擇存儲卡上的文件上傳到當(dāng)前目錄下。
(5)下載:使用OpenStack提供的swift的Restful服務(wù)下載一個文件到本地存儲。
(6)移動/復(fù)制:使用OpenStack提供的swift的Restful服務(wù)把一個文件或文件夾移動或復(fù)制到其他目錄下。
(7)刪除:用戶刪除個人網(wǎng)盤中的文件數(shù)據(jù),刪除后的文件或文件夾放在回收站中。刪除需要使用云存儲swift服務(wù)器的Restful服務(wù)。
(8)還原:將回收站中的文件或者文件夾還原到租戶網(wǎng)盤中,還原需要使用云存儲swift服務(wù)器的Restful服務(wù)。
根據(jù)以上需求和功能說明,設(shè)計Android網(wǎng)盤APP的架構(gòu)如圖1所示。
圖1 基于云存儲的Android網(wǎng)盤APP架構(gòu)圖
(1)swift云存儲服務(wù):Android網(wǎng)盤客戶端需要連接云存儲服務(wù)器,這里可以開發(fā)一個SDK實現(xiàn)云存儲服務(wù)器的連接功能。具體的網(wǎng)絡(luò)連接可以使用HTTP網(wǎng)絡(luò)協(xié)議,同樣也可以封裝服務(wù)Service到SDK中實現(xiàn)異步網(wǎng)絡(luò)操作。
(2)登錄:設(shè)計一個Activity實現(xiàn)用戶登錄??梢栽赟DK中封裝Keystone訪問的接口,通過Keystone管理租戶,然后創(chuàng)建容器和對象。
(3)文件系統(tǒng):目前的云存儲不是一種文件系統(tǒng),需要管理其中的文件系統(tǒng)可以自己在SDK中設(shè)計一種類文件系統(tǒng)。通過封裝SDK接口,可以實現(xiàn)對這種類文件系統(tǒng)的操作。
(4)主界面:設(shè)計一個Activity實現(xiàn)主界面的各個功能。不同的功能區(qū)域?qū)?yīng)不同的Fragment。
(5)導(dǎo)航:通過Fragment實現(xiàn)文件過濾和導(dǎo)航。
(6)所有文檔:通過 Fragment顯示租戶網(wǎng)盤的所有文件和文件夾。
(7)分類:通過Fragment顯示不同的文件,例如文本文件、圖片、視頻、音樂文件等。
(8)回收站:通過Fragment實現(xiàn)回收站的功能,包括還原功能。
(9)文件上傳:選擇上傳的文件,點擊上傳,能將文件上傳至swift的租戶網(wǎng)盤空間,并且文件信息自動刷新顯示在APP的主界面中。
(10)工具類:主要是定義一些文件操作或顯示的輔助功能方法。
3.1 openstack-java-sdk的開發(fā)
首先開發(fā)openstack-java-sdk,封裝客戶端與云存儲服務(wù)器的連接接口,管理用戶的接口以及文件操作的接口。網(wǎng)絡(luò)連接采用HTPP協(xié)議,異步網(wǎng)絡(luò)模式。云存儲服務(wù)器的用戶管理是按照“租戶/容器/對象”進行管理,先在swift上創(chuàng)建租戶,然后才創(chuàng)建這個租戶的容器和對象。文件操作是通過自定義一個類文件操作系統(tǒng)來實現(xiàn)的。
3.2 LoginActivity類實現(xiàn)登錄
(1)使用SDK中封裝的Service的接口,配置連接云存儲服務(wù)器的相關(guān)信息,包括Keystone用戶名、Keystone用戶密碼、Tenant的名稱、Tenant的密碼等信息。
(2)配置連接信息完成獲得當(dāng)前Tenant,進入Tenant租戶網(wǎng)盤空間。
(3)租戶進入個人網(wǎng)盤空間,首先需要創(chuàng)建Container容器,只有創(chuàng)建了容器,才能在容器中對文件對象進行管理和操作。
(4)最后跳轉(zhuǎn)到Android網(wǎng)盤主窗口。
3.3 ObjectListActivity類實現(xiàn)文件顯示
采用Navigation Drawer類型設(shè)計主窗口的ObjectListActivity類,主窗口又包含4個Fragments:NavigationFragment負責(zé)網(wǎng)盤文件導(dǎo)航,ObjectListFragment負責(zé)刷新顯示文件信息、TypeObjectListFragment負責(zé)按文件類型顯示對應(yīng)類型的文件、RecycleObjectListFragment負責(zé)回收站的還原清空等功能。文件以 ListView形式展示,通過SwipeRefreshLayout形式刷新顯示文件信息。
主要功能包括:
(1)通過獲取租戶的容器和對象,顯示文件到ListView。
(2)點擊文件,可以下載或打開這個文件。
(3)點擊文件夾,顯示文件夾中包含的文件對象。
(4)通過下拉列表的控制,刷新顯示文件的基本信息。
(5)長按文件,顯示上下文菜單,包括“刪除”“復(fù)制”“移動”“重命名”和“詳細”,這些功能在上下文菜單中實現(xiàn)。
(6)選項菜單中包括“上傳文件”“添加文件夾”“設(shè)置”功能的實現(xiàn)。
本文基于swift云存儲技術(shù)設(shè)計了一種高性能、安全可靠的Android網(wǎng)盤,可以滿足企業(yè)網(wǎng)或校園網(wǎng)中個人辦公的需求。用戶通過Android移動設(shè)備可以登錄自己的網(wǎng)盤,實現(xiàn)常見文件的操作,極大方便了用戶的使用。
[1]周可,王樺,李春花.云存儲技術(shù)及其應(yīng)用[J].中興通訊技術(shù),2010(4):24-27.
[2]李新宇.網(wǎng)絡(luò)云盤介紹—以360云盤和百度云為例[J].無線互聯(lián)科技,2014(1):23.
Design and implementation of a kind of Android SkyDrive based on cloud storage
Ren Shuoguo
(Liuzhou Railway Vocational Technical College, Liuzhou 545007, China)
This paper presents a kind of Android SkyDrive system architecture with high performance based on cloud storage, with the help of OpenStack cloud computing platform to build cloud storage server, and then take advantage of the Android technology to develop the SkyDrive client, in order to realize functions of file upload, download, move, copy, delete and restore. This paper focuses on the analysis of the functional requirements, technology architecture and implementation path of Android SkyDrive based on cloud storage.
cloud storage; SkyDrive; OpenStack; Android
任碩果(1981— ),男,湖北鐘祥,碩士,講師;研究方向:電子信息技術(shù)。