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