一种基于云存储的Android网盘的设计与实现
2016-12-10任硕果
任硕果
(柳州铁道职业技术学院,广西 柳州 545007)
一种基于云存储的Android网盘的设计与实现
任硕果
(柳州铁道职业技术学院,广西 柳州 545007)
文章提出了一种基于云存储的高性能Android网盘系统架构,借助OpenStack云计算平台搭建云存储服务器,然后采用Android技术开发网盘客户端,实现文件的上传、下载、移动、复制、删除、还原等功能。文章重点分析了这种基于云存储Android网盘的功能需求、技术架构和实现路径。
云存储;网盘;OpenStack;Android
1 基于云存储的Android网盘需求分析
文章借助OpenStack云平台,在云平台上部署云存储swift服务器,Android客户端的网盘连接swift服务器,实现文件的上传、下载、移动、复制、删除、还原等功能。具体功能需求如下。
(1)登录:使用账号和密码,登录云存储swift服务器。云存储服务器swift采用云计算的Keystone服务实现租户的管理。
(2)全部文件:显示当前用户的所有文件列表,主要是常规格式的电子文档,图片文件和视频文件,需要使用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服务。
2 基于云存储的Android网盘技术架构
根据以上需求和功能说明,设计Android网盘APP的架构如图1所示。
图1 基于云存储的Android网盘APP架构图
(1)swift云存储服务:Android网盘客户端需要连接云存储服务器,这里可以开发一个SDK实现云存储服务器的连接功能。具体的网络连接可以使用HTTP网络协议,同样也可以封装服务Service到SDK中实现异步网络操作。
(2)登录:设计一个Activity实现用户登录。可以在SDK中封装Keystone访问的接口,通过Keystone管理租户,然后创建容器和对象。
(3)文件系统:目前的云存储不是一种文件系统,需要管理其中的文件系统可以自己在SDK中设计一种类文件系统。通过封装SDK接口,可以实现对这种类文件系统的操作。
(4)主界面:设计一个Activity实现主界面的各个功能。不同的功能区域对应不同的Fragment。
(5)导航:通过Fragment实现文件过滤和导航。
(6)所有文档:通过 Fragment显示租户网盘的所有文件和文件夹。
(7)分类:通过Fragment显示不同的文件,例如文本文件、图片、视频、音乐文件等。
(8)回收站:通过Fragment实现回收站的功能,包括还原功能。
(9)文件上传:选择上传的文件,点击上传,能将文件上传至swift的租户网盘空间,并且文件信息自动刷新显示在APP的主界面中。
(10)工具类:主要是定义一些文件操作或显示的辅助功能方法。
3 基于云存储的Android网盘的主要实现类
3.1 openstack-java-sdk的开发
首先开发openstack-java-sdk,封装客户端与云存储服务器的连接接口,管理用户的接口以及文件操作的接口。网络连接采用HTPP协议,异步网络模式。云存储服务器的用户管理是按照“租户/容器/对象”进行管理,先在swift上创建租户,然后才创建这个租户的容器和对象。文件操作是通过自定义一个类文件操作系统来实现的。
3.2 LoginActivity类实现登录
(1)使用SDK中封装的Service的接口,配置连接云存储服务器的相关信息,包括Keystone用户名、Keystone用户密码、Tenant的名称、Tenant的密码等信息。
(2)配置连接信息完成获得当前Tenant,进入Tenant租户网盘空间。
(3)租户进入个人网盘空间,首先需要创建Container容器,只有创建了容器,才能在容器中对文件对象进行管理和操作。
(4)最后跳转到Android网盘主窗口。
3.3 ObjectListActivity类实现文件显示
采用Navigation Drawer类型设计主窗口的ObjectListActivity类,主窗口又包含4个Fragments:NavigationFragment负责网盘文件导航,ObjectListFragment负责刷新显示文件信息、TypeObjectListFragment负责按文件类型显示对应类型的文件、RecycleObjectListFragment负责回收站的还原清空等功能。文件以 ListView形式展示,通过SwipeRefreshLayout形式刷新显示文件信息。
主要功能包括:
(1)通过获取租户的容器和对象,显示文件到ListView。
(2)点击文件,可以下载或打开这个文件。
(3)点击文件夹,显示文件夹中包含的文件对象。
(4)通过下拉列表的控制,刷新显示文件的基本信息。
(5)长按文件,显示上下文菜单,包括“删除”“复制”“移动”“重命名”和“详细”,这些功能在上下文菜单中实现。
(6)选项菜单中包括“上传文件”“添加文件夹”“设置”功能的实现。
4 结语
本文基于swift云存储技术设计了一种高性能、安全可靠的Android网盘,可以满足企业网或校园网中个人办公的需求。用户通过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— ),男,湖北钟祥,硕士,讲师;研究方向:电子信息技术。