介绍
这篇文章给大家介绍怎么在Android中利用Oss上传图片,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Android工作室添加依赖
dependencies { compile 才能;& # 39;com.aliyun.dpa: oss-android-sdk: 2.4.5& # 39; compile 才能;& # 39;com.squareup.okhttp3: okhttp: 3.4.1& # 39; compile 才能;& # 39;com.squareup.okio: okio: 1.9.0& # 39; }
直接引入jar包(对Android工作室或Eclipse者都适用)
1。在官网下载sdk包
2。解压后得到jar包,目前包括aliyun-oss-sdk-android-x.x.x.jar, okhttp x.x——3.。jar和okio - 1. - x.x.jar
3。将以上3个jar包导入填词目录
<强>权限设置强>
确保AndroidManifest。xml文件中已经配置了这些权限,否则,SDK将无法正常工作。
& lt; uses-permission android: name=癮ndroid.permission.INTERNET"祝辞& lt;/uses-permission> & lt; uses-permission  android: name=癮ndroid.permission.ACCESS_NETWORK_STATE"祝辞& lt;/uses-permission> & lt; uses-permission  android: name=癮ndroid.permission.ACCESS_WIFI_STATE"祝辞& lt;/uses-permission> & lt; uses-permission  android: name=癮ndroid.permission.WRITE_EXTERNAL_STORAGE"祝辞& lt;/uses-permission>
混淆设置
-keep class com.alibaba.sdk.android.oss。* *, {, *;} -dontwarn okio。* * -dontwarn org.apache.commons.codec.binary。* *
<强>实现过程强>
首先为了安全起见,采用的是STS鉴权模式,则要用到的数据都是从后台获得然后应用到前台的。
1。创建OSSClient(自己在这里命名为OssService)
OSSClient为OSS服务的Android客户端,它为调用者提供了一系列的方法,可以用来操作,管理存储空间(桶)和文件(对象)等。
public class OssService { private 才能;OSS  oss; private 才能;String 桶; private 才能picResultCallback 回调;//回调接口 private 才能String 路径=地址(后台告诉); public 才能;OssService (OSS oss, String 桶,picResultCallback 回调),{ ,,,this.oss =, oss; ,,,this.bucket =,桶; ,,,this.callback=回调; ,,} , ,/* *对象字段为图片的上传地址(具体地址的前缀后端给,这个是拼起 *才能来的一个路径) *才能localFile图片的本地地址 * mProgress 才能进度条 * img 才能显示图片的控件 * type 才能类型 ,*/public 才能;void  asyncPutImage (String 对象,final String localFile,, final ProgressBar mProgress,, final ImageView img, String 类型),{ ,,,if (object.equals (“;”)), { ,,,,,Log.w (“AsyncPutImage",,“ObjectNull"); ,,,,,返回; ,,,} ,,,File File =, new 文件(localFile); ,,,if (! file.exists ()), { ,,,,,Log.w (“AsyncPutImage",,“FileNotExist"); ,,,,,Log.w (“LocalFile",, localFile); ,,,,,返回; ,,,} ,,,//,构造上传请求 ,,,PutObjectRequest put =, new PutObjectRequest(桶,对象,,localFile); ,,,,,put.setCallbackParam (new HashMap<字符串,String> (), { ,,,,,,,{ ,,,,,,,,,把(“callbackUrl",,路径); ,,,,,,,,,把(“callbackBody",,“文件名=${对象},大?${大小},id=$ {x: id},行动=$ {x:行动}“);//https://help.aliyun.com/document_detail/31989.html?spm=5176.doc31984.6.883.brskVg ,,,,,,,} ,,,,,}); ,,,HashMap<字符串,String>, hashMap=new HashMap<在(); ,,,hashMap.put (“x: id" id); ,,,hashMap.put (“x: action"类型); ,,,put.setCallbackVars (hashMap); ,,,//,异步上传时可以设置进度回调 ,,,put.setProgressCallback (new OSSProgressCallback< PutObjectRequest> (), { ,,,,@Override ,,,,,public void onProgress (PutObjectRequest 请求,long currentSize,, long totalSize), { ,,,,,,,int progress =, (int), (100, *, currentSize /, totalSize); ,,,,,,,mProgress.setProgress(进步); ,,,,,} ,,,}); ,,,OSSAsyncTask task =, oss.asyncPutObject (put, new OSSCompletedCallback(), { ,,,,@Override null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null 怎么在Android中利用Oss上传图片