中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android R如何將圖片到上傳OSS

發布時間:2021-09-10 16:55:20 來源:億速云 閱讀:124 作者:柒染 欄目:云計算

這篇文章將為大家詳細講解有關Android R如何將圖片到上傳OSS,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

首先先初始化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("<bucketName>", "<objectKey>", "<uploadFilePath>");// 文件元信息的設置是可選的// 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("<bucketName>", "<objectKey>", "<uploadFilePath>");// 異步上傳時可以設置進度回調put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {    @Override    public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {        Log.d("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize);    }});OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {    @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返回給我們

關于Android R如何將圖片到上傳OSS就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

疏勒县| 达州市| 桐梓县| 涞源县| 滦南县| 什邡市| 西平县| 吉首市| 怀远县| 鹿泉市| 安化县| 桐乡市| 神木县| 万载县| 凤冈县| 闻喜县| 黎川县| 井研县| 山西省| 扬州市| 新安县| 十堰市| 新津县| 赤水市| 鹤山市| 商城县| 五大连池市| 东明县| 南平市| 北宁市| 陕西省| 恩平市| 视频| 九龙城区| 日喀则市| 沈丘县| 黄石市| 乌拉特前旗| 靖宇县| 开远市| 阿巴嘎旗|