怎么在Android中利用Oss上传图片

  介绍

这篇文章给大家介绍怎么在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上传图片