lmw
2024-05-28 524abed53193c67683a363ce0f12fe4aa98323a0
app/src/main/java/com/future/driver/utils/OSSUtil.java
@@ -15,6 +15,7 @@
import com.alibaba.sdk.android.oss.internal.OSSAsyncTask;
import com.alibaba.sdk.android.oss.model.PutObjectRequest;
import com.alibaba.sdk.android.oss.model.PutObjectResult;
import com.future.driver.base.MyApplication;
import java.io.File;
import java.util.ArrayList;
@@ -122,6 +123,56 @@
        mTasks.add(task);
    }
    private void uploadVoice(final String url, final OSSUploadCallBack callBack) {
        String recordOrderId = MyApplication.Companion.getRecordOrderId();
        String recordOrderType = MyApplication.Companion.getRecordOrderType();
        final String objectKey = "driver/record/" +recordOrderType+"_"+recordOrderId+"_"+url.substring(url.lastIndexOf("/")+1);
        PutObjectRequest put = new PutObjectRequest(bucketName, objectKey, url);
        put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
            long temp = 0;
            @Override
            public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
                CURRENT_SIZE += currentSize - temp;
                temp = currentSize;
                callBack.onSizeProgress(CURRENT_SIZE, TOTAL_SIZE);
            }
        });
        OSSAsyncTask<PutObjectResult> task = mOss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
            @Override
            public void onSuccess(PutObjectRequest request, PutObjectResult result) {
                mActivity.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        URLs.add(mOss.presignPublicObjectURL(bucketName, objectKey));
                        callBack.onFinishWithSize(URLs.get(0),CURRENT_SIZE);
                        mTasks.clear();
                    }
                });
            }
            @Override
            public void onFailure(PutObjectRequest request, ClientException
                    clientException, ServiceException serviceException) {
                // 请求异常
                if (clientException != null) {
                    clientException.printStackTrace();
                    // 本地异常如网络异常等
                    callBack.onFial("网络异常");
                }
                if (serviceException != null) {
                    serviceException.printStackTrace();
                    // 服务异常
                    callBack.onFial("服务器异常");
                }
            }
        });
        mTasks.add(task);
    }
    /**
     * 单文件上传
@@ -137,6 +188,17 @@
        }
        TOTAL_COUNT = single.size();
        upload(single, true, callBack);
    }
    /**
     * 单文件上传
     *
     * @param url      the url
     * @param callBack the call back
     */
    public void uploadSingleWithSize(String url, OSSUploadCallBack callBack) {
        uploadVoice(url,  callBack);
    }
    /**
@@ -158,6 +220,10 @@
        public void onFinish(String url) {
        }
        //单张上传成功
        public void onFinishWithSize(String url,Long size) {
        }
        //批量上传成功
        public void onFinish(ArrayList<String> urls) {