这篇文章将为大家详细讲解有关Android R如何将图片到上传OSS,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
这篇文章将为大家详细讲解有关Android R如何将图片到上传OSS,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站制作、象州网络推广、成都小程序开发、象州网络营销、象州企业策划、象州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供象州建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
首先先初始化oss对象
// ACCESS_ID,ACCESS_KEY是在[阿里云](https://l.gushuji.site/aliyun)申请的 OSSCredentialProvider credentialProvider = new OSSPlainTextAKSKCredentialProvider(ACCESS_ID, ACCESS_KEY); ClientConfiguration conf = new ClientConfiguration(); conf.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒 conf.setSocketTimeout(15 * 1000); // socket超时,默认15秒 conf.setMaxConcurrentRequest(8); // 最大并发请求数,默认5个 conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次 // oss为全局变量,OSS_ENDPOINT是一个OSS区域地址 oss = new OSSClient(getApplicationContext(), OSS_ENDPOINT, credentialProvider, conf);
oss上传图片分为同步和异步
同步的方法
// 构造上传请求PutObjectRequest put = new PutObjectRequest("", "", "");// 文件元信息的设置是可选的// ObjectMetadata metadata = new ObjectMetadata();// metadata.setContentType("application/octet-stream"); // 设置content-type// metadata.setContentMD5(BinaryUtil.calculateBase64Md5(uploadFilePath)); // 校验MD5// put.setMetadata(metadata);try { PutObjectResult putResult = oss.putObject(put); Log.d("PutObject", "UploadSuccess"); Log.d("ETag", putResult.getETag()); Log.d("RequestId", putResult.getRequestId());} catch (ClientException e) { // 本地异常如网络异常等 e.printStackTrace();} catch (ServiceException e) { // 服务异常 Log.e("RequestId", e.getRequestId()); Log.e("ErrorCode", e.getErrorCode()); Log.e("HostId", e.getHostId()); Log.e("RawMessage", e.getRawMessage());}
此处这个bucketName是在阿里云平台上配置的 用来储存文件 可以设置私有公有等属性
objectKey为文件的名字 用来从平台上查询图片
FilePath为所选文件的uri路径
异步上传的方法
// 构造上传请求PutObjectRequest put = new PutObjectRequest("", "", "");// 异步上传时可以设置进度回调put.setProgressCallback(new OSSProgressCallback() { @Override public void onProgress(PutObjectRequest request, long currentSize, long totalSize) { Log.d("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); }});OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback() { @Override public void onSuccess(PutObjectRequest request, PutObjectResult result) { Log.d("PutObject", "UploadSuccess"); Log.d("ETag", result.getETag()); Log.d("RequestId", result.getRequestId()); } @Override public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { // 请求异常 if (clientExcepion != null) { // 本地异常如网络异常等 clientExcepion.printStackTrace(); } if (serviceException != null) { // 服务异常 Log.e("ErrorCode", serviceException.getErrorCode()); Log.e("RequestId", serviceException.getRequestId()); Log.e("HostId", serviceException.getHostId()); Log.e("RawMessage", serviceException.getRawMessage()); } }});// task.cancel(); // 可以取消任务// task.waitUntilFinished(); // 可以等待任务完成
一般上传成功时候 客户端需要把文件的objectkey传给后台 后台通过拼接然后把图片的url返回给我们
本文名称:AndroidR如何将图片到上传OSS
新闻来源:
http://cdkjz.cn/article/dicgcd.html