七牛云的android SDK demo代码调试

来源:互联网 发布:人工智能发展的里程碑 编辑:程序博客网 时间:2024/05/08 17:48

现在正在开发的android程序需要存储一些文件,想要云存储空间,花了一天的时间,研究了一下2017年7月份的云存储的现状:

评价标准:有没有api接口,有没有增量功能。

1、公有云
Dropbox                  被墙。支持文件增量上传,
Google Drive           被墙
Windows SkyDrive  OneDrive SDK,需要windows的技术平台
box                          收费,提供移动端SDK(https://github.com/box/box-android-sdk)
mega                       被墙

腾讯微云          cos
百度网盘         内测android sdk,不提供ios sdk。百度已经关闭了pcs的申请。
金山快盘         快盘个人存储服务已经于2016年8月16日正式关闭。  
360云             
坚果云           增量功能。不提供api接口
阿里云           收费,oss(https://www.aliyun.com/product/oss/)安卓sdk(https://github.com/aliyun/aliyun-oss-java-sdk?spm=5176.doc32008.2.2.4hszEE)
七牛云           免费,提供android接口,社区友好。

2、私有云
seafile            https://manual.seafile.com/,搭建自己的私有文件系统,只有web api。
owncloud        ownCloud的移动客户端android版本不错。

私有云需要自己搭建主机和存储环境。暂时不考虑。最后选择了七牛云,因为小容量免费,社区支持好,网上的资料很多。


接着搭建demo环境。

1、在七牛云注册用户,并在对象存储中新建存储空间,填写“存储空间名称”gpxspace,“存储区域”华南,“访问控制”公共空间。随后自动生成测试域名some.bkt.clouddn.com,云存储的配置工作完成。还可以申请一个私有空间,同样记住空间名称和生成的测试域名。

2、在七牛云个人中心 中的密钥管理,找到AccessKey/SecretKey。

3、阅读七牛云的开发文档,https://developer.qiniu.com/kodo,特别是编程模型,安全机制,还要android SDK这几个部分。简单的说,在七牛云中上传文件和下载文件,都需要TOKEN令牌,这个TOKEN的生成不是在七牛云的服务器上,也不在android的客户端,而是需要开发人员自己的服务器上通过SDK生成。然后andorid向服务器请求TOKEN,得到TOKEN之后,再向七牛云发起文件的操作。

4、搭建demo所需要的服务器环境。demo在https://github.com/qiniudemo/qiniu-api-server/tree/master/php-v6    

将代码部署到服务器上,我是部署在新浪云上,php版本V7,访问地址http://test.applinzi.com。

需要修改的内容是php-v6目录下的config.php文件

//七牛的AK,SK,从 https://portal.qiniu.com/user/key 获取
$Qiniu_AccessKey = "在第2步获得";
$Qiniu_SecretKey = " 在第2步获得";

//公开空间
$Qiniu_Public_Bucket = "在第1步获得的公共空间名";
//公开空间对应域名,测试阶段可以使用七牛给出的默认域名,生产阶段请使用自定义域名
$Qiniu_Public_Bucket_Domain = "在第1步获得的公共空间对应的测试域名";

//私有空间
$Qiniu_Private_Bucket = "在第1步获得的私有空间名";
//私有空间对应域名,测试阶段可以使用七牛给出的默认域名,生产阶段请使用自定义域名
$Qiniu_Private_Bucket_Domain = "在第1步获得的私有空间对应的测试域名";

$APP_CALLBACK_ROOT="就是第4步部署的服务器端访问地址,例子是http://test.applinzi.com";

保存。

5、配置android客户端。demo在https://github.com/qiniudemo/qiniu-lab-android

将代码下载到本地,然后用开发工具intellij或者AS打开QiniuLab下面的项目,修改com.qiniu.qiniulab.config.QiniuLabConfig.java文件

将REMOTE_SERVICE_SERVER修改为第4步中的服务器端地址,这里是http://test.applinzi.com

然后运行app,就可以测试七牛的demo。

6、问题总结。第5步中的android客户端代码可能比较老,在新的7.3.3版本的sdk中,需要config初始化uploadmanager。注意存储空间所在的zone。

        //————http上传,指定zone的具体区域——        //Zone.zone0:华东        //Zone.zone1:华北        //Zone.zone2:华南        //Zone.zoneNa0:北美        //———http上传,自动识别上传区域——        //Zone.httpAutoZone        //———https上传,自动识别上传区域——        //Zone.httpsAutoZone        Configuration config = new Configuration.Builder()                .chunkSize(256 * 1024)  //分片上传时,每片的大小。 默认256K                .putThreshhold(512 * 1024)  // 启用分片上传阀值。默认512K                .connectTimeout(10) // 链接超时。默认10秒                .responseTimeout(60) // 服务器响应超时。默认60秒                .recorder(null)  // recorder分片上传时,已上传片记录器。默认null                .recorder(null, null)  // keyGen 分片上传时,生成标识符,用于片记录器区分是那个文件的上传记录                .zone(Zone.zone2) // 设置区域,指定不同区域的上传域名、备用域名、备用IP。                .build();        this.uploadManager = new UploadManager(config);






原创粉丝点击