Android使用Minio对象存储服务API
2017-07-26 15:38
656 查看
Minio提供对象存储服务。它的应用场景被设定在了非结构化的数据的存储之上了。众所周知,非结构化对象诸如图像/音频/视频/log文件/系统备份/镜像文件…等等保存起来管理总是不那么方便,size变化很大,类型很多,再有云端的结合会使得情况更加复杂,minio就是解决此种场景的一个解决方案。Minio号称其能很好的适应非结构化的数据,支持AWS的S3,非结构化的文件从数KB到5TB都能很好的支持。
在Minio的API中,为java等语言提供了API,但是想要移动端直接将文件等存在Minio上,是比较困难的一件事。 如果你直接集成Minio为java提供的SDK,那么不会那么轻易集成到安卓项目中,本人用了两天时间将经验融合到项目中。
Demo下载地址:https://github.com/15229016179/MinioForAndroid
Minio API地址:https://docs.minio.io/
如果你是写go的,那么你应该对Minio不陌生,一个强大的对象存储服务。
安卓直接使用Minio为java提供的API,需要引入jar包。看API的时候兴高采烈,感觉so easy!可结果却是:
日了狗了!!!
刚导入jar包就是各种报错!各种jar包冲突。
然后就是长达两天的折磨!终于搞定。
先是为了搞定冲突,尝试删减jar包:
无果。
虽然解决掉了jar包冲突的问题,在6.0的手机上运行ok,但是在4.2的手机上搞不起来,原因是minio的jar包中使用了JDK1.7的类库。好难受!
然后只能把jar包反编译,看看它究竟搞了什么鬼。
没办法,只能把jar包中Minio的包反编译出来,改掉源码中使用JDK1.7类库的函数,然后引入需要用到的第三方jar:
最终搞定了,太开心了!
请转至github下载源码查看:https://github.com/15229016179/MinioForAndroid
博主技术有限,望大牛路过多多指教!
在Minio的API中,为java等语言提供了API,但是想要移动端直接将文件等存在Minio上,是比较困难的一件事。 如果你直接集成Minio为java提供的SDK,那么不会那么轻易集成到安卓项目中,本人用了两天时间将经验融合到项目中。
Demo下载地址:https://github.com/15229016179/MinioForAndroid
Minio API地址:https://docs.minio.io/
如果你是写go的,那么你应该对Minio不陌生,一个强大的对象存储服务。
安卓直接使用Minio为java提供的API,需要引入jar包。看API的时候兴高采烈,感觉so easy!可结果却是:
日了狗了!!!
刚导入jar包就是各种报错!各种jar包冲突。
然后就是长达两天的折磨!终于搞定。
先是为了搞定冲突,尝试删减jar包:
packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' } //minio针对java做的api,导入后会报一系列包冲突 compile('io.minio:minio:3.0.5', { exclude group: 'com.google.code.findbugs', module: 'jsr305' exclude group: 'com.google.code.findbugs', module: 'annotations' exclude group: 'com.squareup.okhttp3', module: 'okhttp' exclude group: 'com.squareup.okio', module: 'okio' exclude group: 'net.jcip', module: 'jcip-annotations' exclude group: 'org.apache.httpcomponents', module: 'httpclient' exclude group: 'xpp3', module: 'xpp3' })
无果。
虽然解决掉了jar包冲突的问题,在6.0的手机上运行ok,但是在4.2的手机上搞不起来,原因是minio的jar包中使用了JDK1.7的类库。好难受!
然后只能把jar包反编译,看看它究竟搞了什么鬼。
没办法,只能把jar包中Minio的包反编译出来,改掉源码中使用JDK1.7类库的函数,然后引入需要用到的第三方jar:
//自己根据minio sdk中的lib引用,将必须用到的lib引用到项目中,并做一些删减,解决包引用冲突 compile 'com.squareup.okhttp3:okhttp:3.6.0' compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.0.pr3' compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.0.pr3' compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.0.pr3' compile group: 'com.google.code.findbugs', name: 'annotations', version: '2.0.1' // compile group: 'commons-logging', name: 'commons-logging', version: '1.1.1' compile group: 'joda-time', name: 'joda-time', version: '2.7' compile group: 'com.google.guava', name: 'guava', version: '18.0' // compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.5' // compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.0.1' compile('com.google.http-client:google-http-client:1.20.0', { exclude group: 'org.apache.httpcomponents', module: 'httpclient' exclude group: 'com.google.code.findbugs', module: 'jsr305' }) compile(group: 'com.google.http-client', name: 'google-http-client-xml', version: '1.20.0', { exclude group: 'xpp3', module: 'xpp3' exclude group: 'org.apache.httpcomponents', module: 'httpclient' exclude group: 'com.google.code.findbugs', module: 'jsr305' })
最终搞定了,太开心了!
请转至github下载源码查看:https://github.com/15229016179/MinioForAndroid
博主技术有限,望大牛路过多多指教!
相关文章推荐
- 腾讯对象存储服务COS加密签名上传文件与下载文件的剖析,福利提供给所有使用Android的小伙伴们!
- android开发游记:使用sharepreference存储复杂对象的解决方案
- android--内部存储写文件和使用API获取内部存储路径,sharedperferance获取原有的账号密码--简单的登陆(记录原有的账号和密码)--I/0流介绍
- 使用cURL操作Openstack对象存储的ReST API
- 【Python】使用 boto 调用 S3 对象存储API
- Android中使用sqlite数据库实现对象的存储
- Android 中使用SharedPreferences存储通用对象
- 阿里云对象存储服务,OSS使用经验总结,图片存储,分页查询
- Android 存储学习之SQLite数据库的基本操作 (使用API操作数据库)
- COS对象存储服务的使用
- Android使用Google Map服务时获取Map API Key时在Win7下出现的问题
- 使用 minio 搭建私有对象存储云。aws-php-sdk 操作object
- 分布式对象存储Ambry(2)基本使用API与集群容错测试
- COS对象存储服务的使用
- 腾讯云cos对象存储服务文件上传api就是一个大坑
- android调用C# 服务返回对象使用方法说明
- 阿里云对象存储服务,OSS使用经验总结,图片存储,分页查询
- Android使用Gson和SharedPreferences存储对象
- [Android实例] 使用SQLite存储以及读取Drawable对象【转】