shurnim-storage
目录
背景介绍
Shurnim,是我和我老婆曾经养过的一只仓鼠的名字。
shurnim-storage,是一个插件式云存储/网盘同步管理工具。是在参加又拍云开发大赛的过程中设计并开发。
项目介绍
shurnim-storage 的设计初衷是给大家提供一个可方便扩展的云存储/网盘同步工具。分后端接口和前端UI界面两部分。
由于目前各种云存储和网盘系统层出不穷,单一工具往往支持支持某几个特定存储之间的同步,如又拍云到七牛云存储的同步工具,此时如若想同步到其他存则可能需要新的工具,给用户带来不便。shurnim-storage 正是为了解决此问题而设计的。
在shurnim-storage中,用户使用的固定的统一的后端接口。而所有云存储/网盘API的支持则是以插件的形式部署到系统中的。如此,如果用户想要一个从又拍云到Dropbox的同步工具,则只需要在原有基础上,增加Dropbox的插件,即可实现互通,方便快捷。
同时,后端统一接口的设计也考虑到界面开发的需求,可直接通过后端提供的接口开发具有上述扩展功能的云存储UI工具。
目前,后端整体框架的核心部分已经基本开发完成。只需逐步补充后端接口和插件开发接口的定义即可。但由于个人时间和能力所限,UI部分没有开发,有兴趣的同学可以一试。
使用说明
获取代码
- gitcafe项目主页: https://gitcafe.com/onecoder/shurnim-storage-for-UPYUN
- OSChina项目主页: http://git.oschina.net/onecoder/shurnim-storage
OSChina上的会持续更新。
另外你也可以通过OSChina的Maven库获取依赖,或者自己编译jar包。
maven
加入OSC仓库
<repositories> <repository> <id>nexus</id> <name>local private nexus</name> <url>http://maven.oschina.net/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
加入依赖
<dependency> <groupId>com.coderli</groupId> <artifactId>shurnim-storage</artifactId> <version>0.1-alpha</version> </dependency>
- Gradle 编译Jar
在项目目录执行
gradle jar
开发插件
在shurnim-storage中,插件就像一块一块的积木,不但支撑着框架的功能,也是框架可扩展性的基石。开发一个插件,仅需两步:
- 实现PluginAPI接口
|
|
目前插件的接口列表仅为同步资源设计,如果想要支持更多操作(如删除,查找等),可扩展该接口定义。
接口中,所有的参数和返回值均为shurnim-storage框架中定义的通用模型。因此,您在开发插件过程中需要将特定SDK中的模型转换成接口中提供的模型。
插件实现类只要与shurnim-storage工程在同一个classpath即可使用。您既可以直接在源码工程中开发插件,就如工程里提供的upyun和qiniu插件一样,也可以作为独立工程开发,打成jar,放置在同一个classpath下。
upyun插件样例(功能不完整):
|
|
- 编写插件配置文件
|
|
id 为该插件在shurnim-storage框架下的唯一标识,不可重复,必填。
- name 为显示值,为UI开发提供可供显示的有语义的值。
- className 为插件接口实现类的完整路径。必填
- params/param 为插件需要用户配置的参数列表。其中
- name 代表参数名,需要与接口实现类中的参数名严格一致,且必须有相应的set方法的格式要求严格,即set+首字母大写的参数名。例如:setAccess_key(String arg); 目前只支持String类型的参数。
- displayName 为参数显示名,同样是为了UI开发的考虑,方便用户开发出可根据参数列表动态显示的UI界面。
- 参数的值可以直接配置在配置文件中,也可以在运行期动态赋值。直接配置值,对于直接使用后端接口来说较为方便。对于UI开发来说,运行期动态赋值更为合理。
在使用源码工程时,插件配置文件统一放置在工程的plugins目录下。你也可以统一放置在任何位置。此时,在构造后端接口实例时,需要告知接口该位置。
使用ShurnimStorage接口
接口介绍
ShurnimStorage接口是shurinm-storage框架全局的也是唯一的接口,目前定义如
|
|
其他
时间仓促,功能简陋,望您包涵。OneCoder(Blog:http://www.coderli.com)特别希望看到该项目对您哪怕一点点的帮助。任意的意见和建议,欢迎随意与我沟通,联系方式:
- Email: wushikezuo@gmail.com
- QQ:57959968
- Blog:OneCoder
项目的Bug和改进点,可在OSChina上以issue的方式直接提交给我。