這篇文章將為大家詳細講解有關(guān)Android R如何將圖片到上傳OSS,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
這篇文章將為大家詳細講解有關(guān)Android R如何將圖片到上傳OSS,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、象州網(wǎng)絡(luò)推廣、成都小程序開發(fā)、象州網(wǎng)絡(luò)營銷、象州企業(yè)策劃、象州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供象州建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址: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); // 連接超時,默認(rèn)15秒 conf.setSocketTimeout(15 * 1000); // socket超時,默認(rèn)15秒 conf.setMaxConcurrentRequest(8); // 最大并發(fā)請求數(shù),默認(rèn)5個 conf.setMaxErrorRetry(2); // 失敗后最大重試次數(shù),默認(rèn)2次 // oss為全局變量,OSS_ENDPOINT是一個OSS區(qū)域地址 oss = new OSSClient(getApplicationContext(), OSS_ENDPOINT, credentialProvider, conf);
oss上傳圖片分為同步和異步
同步的方法
// 構(gòu)造上傳請求PutObjectRequest put = new PutObjectRequest("", "", "");// 文件元信息的設(shè)置是可選的// ObjectMetadata metadata = new ObjectMetadata();// metadata.setContentType("application/octet-stream"); // 設(shè)置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) { // 本地異常如網(wǎng)絡(luò)異常等 e.printStackTrace();} catch (ServiceException e) { // 服務(wù)異常 Log.e("RequestId", e.getRequestId()); Log.e("ErrorCode", e.getErrorCode()); Log.e("HostId", e.getHostId()); Log.e("RawMessage", e.getRawMessage());}
此處這個bucketName是在阿里云平臺上配置的 用來儲存文件 可以設(shè)置私有公有等屬性
objectKey為文件的名字 用來從平臺上查詢圖片
FilePath為所選文件的uri路徑
異步上傳的方法
// 構(gòu)造上傳請求PutObjectRequest put = new PutObjectRequest("", "", "");// 異步上傳時可以設(shè)置進度回調(diào)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) { // 本地異常如網(wǎng)絡(luò)異常等 clientExcepion.printStackTrace(); } if (serviceException != null) { // 服務(wù)異常 Log.e("ErrorCode", serviceException.getErrorCode()); Log.e("RequestId", serviceException.getRequestId()); Log.e("HostId", serviceException.getHostId()); Log.e("RawMessage", serviceException.getRawMessage()); } }});// task.cancel(); // 可以取消任務(wù)// task.waitUntilFinished(); // 可以等待任務(wù)完成
一般上傳成功時候 客戶端需要把文件的objectkey傳給后臺 后臺通過拼接然后把圖片的url返回給我們
本文題目:AndroidR如何將圖片到上傳OSS
網(wǎng)頁地址:
http://weahome.cn/article/dicgcd.html