OSS上传

1.

implementation 'com.aliyun.dpa:oss-android-sdk:+'
private void upLoadFrontImg(String path) {
        String frontUploadPath = "XingShiZheng/" + System.currentTimeMillis() + ".png";
        frontUploadLiveUrl = "http://" + ALIYUN_APP_BUCKET + ".oss-cn-beijing.aliyuncs.com/" + frontUploadPath;
        OssService ossService = new OssService(this, Constants.ALIYUN_APP_ID, Constants.ALIYUN_APP_KEY, Constants.ALIYUN_APP_ENPOINT, ALIYUN_APP_BUCKET);

        ossService.initOSSClient();
        ossService.beginupload(this, frontUploadPath, path);
        ossService.setUpLoadSucessCallback(new OssService.UpLoadSucessCallback() {
            @Override
            public void onUploadSucessCallback(PutObjectResult result) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {

                        imagePortrait = frontUploadLiveUrl;
                        GlideUtil.load(ivHold, frontUploadLiveUrl);
                        Log.w("tupian", frontUploadLiveUrl);

//                        stopLoading();
                    }
                });
            }
        });

    }

2.

 private void upLoadByte(byte[] bytes) {
        String frontUploadPath1 = "XingShiZheng/" + System.currentTimeMillis() + ".png";
        frontUploadLiveUrl1 = "http://" + ALIYUN_APP_BUCKET + ".oss-cn-beijing.aliyuncs.com/" + frontUploadPath1;
        OssService ossService = new OssService(this, Constants.ALIYUN_APP_ID, Constants.ALIYUN_APP_KEY, Constants.ALIYUN_APP_ENPOINT, ALIYUN_APP_BUCKET);
        ossService.initOSSClient();
        ossService.beginupload(this, frontUploadPath1, bytes);

        ossService.setUpLoadSucessCallback(new OssService.UpLoadSucessCallback() {
            @Override
            public void onUploadSucessCallback(PutObjectResult result) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
//                        GlideUtil.load(ivHold, frontUploadLiveUrl);
//                        stopLoading();
//                        if (i.equals("zhengmianFile")) {
                        imageFrontside = frontUploadLiveUrl1;
                        GlideUtil.load(ivHuman, frontUploadLiveUrl1);
                        Log.w("tup1", frontUploadLiveUrl1);
//                            Log.w("tupian", frontUploadLiveUrl);
                            uploadImage(frontUploadPath);

//                        } else if (i.equals("fanmianFile")){

                            uploadImage(frontUploadPath);
//                            GlideUtil.load(ivNational, frontUploadLiveUrl);
//                        }
                    }
                });
            }
        });
    }

3.

public class Constants {

    public static final String ALIYUN_APP_ID = "LTAIoVArn2v1z1QW";
    public static final String ALIYUN_APP_KEY = "cGexaxuKTVbMkbR7ozr1JvB4yZM7v2";
    public static final String ALIYUN_APP_BUCKET = "appark";
    public static final String ALIYUN_APP_ENPOINT = "http://oss-cn-beijing.aliyuncs.com/";

}

public class OssService {

    private OSS oss;
    private String accessKeyId;
    private String bucketName;
    private String accessKeySecret;
    private String endpoint;
    private Context context;

    private ProgressCallback progressCallback;
    private UpLoadSucessCallback upLoadSucessCallback;

    public OssService(Context context, String accessKeyId, String accessKeySecret, String endpoint, String bucketName) {
        this.context = context;
        this.endpoint = endpoint;
        this.bucketName = bucketName;
        this.accessKeyId = accessKeyId;
        this.accessKeySecret = accessKeySecret;
    }

    public void initOSSClient() {
        //OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider("<StsToken.AccessKeyId>", "<StsToken.SecretKeyId>", "<StsToken.SecurityToken>");
        //这个初始化安全性没有Sts安全,如需要很高安全性建议用OSSStsTokenCredentialProvider创建(上一行创建方式)多出的参数SecurityToken为临时授权参数
        OSSCredentialProvider credentialProvider = new OSSPlainTextAKSKCredentialProvider("LTAIJRjAQ8r4pAwd", "Bm9CxZt2Z3uk55EvhZENjoz7X9sqoD");
        ClientConfiguration conf = new ClientConfiguration();
        conf.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒
        conf.setSocketTimeout(15 * 1000); // socket超时,默认15秒
        conf.setMaxConcurrentRequest(8); // 最大并发请求数,默认5个
        conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次

        // oss为全局变量,endpoint是一个OSS区域地址
//        Runnable runnable = new Runnable() {
//            @Override
//            public void run() {
                oss = new OSSClient(context, "oss-cn-beijing.aliyuncs.com", credentialProvider, conf);
//            }
//        };

    }

    public void beginupload(Context context, String filename, byte[] cropFrontByte) {
        //通过填写文件名形成objectname,通过这个名字指定上传和下载的文件
        String objectname = filename;
        if (objectname == null || objectname.equals("")) {
            ToastUtils.showToast("文件名不能为空");
            return;
        }
        //下面3个参数依次为bucket名,Object名,上传文件路径
        PutObjectRequest put = new PutObjectRequest(bucketName, objectname, cropFrontByte);
        if (cropFrontByte == null || cropFrontByte.equals("")) {
            return;
        }
        // 异步上传,可以设置进度回调

        Log.i("111", "---正在上传-");
        put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
            @Override
            public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
                double progress = currentSize * 1.0 / totalSize * 100.f;

                if (progressCallback != null) {
                    Log.i("111","----"+progress);
                    progressCallback.onProgressCallback(progress);
                }
            }
        });
        @SuppressWarnings("rawtypes")
        OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
            @Override
            public void onSuccess(PutObjectRequest request, PutObjectResult result) {
                PutObjectResult result1 = result;

                Log.i("111", "-----上传C--");
                if (upLoadSucessCallback != null) {
                    upLoadSucessCallback.onUploadSucessCallback(result);
                }
            }

            @Override
            public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
                // 请求异常
                ToastUtils.showToast("UploadFailure");

                Log.i("111", "-----上传失败--");
                if (clientExcepion != null) {
                    // 本地异常如网络异常等

                    clientExcepion.printStackTrace();
                }
                if (serviceException != null) {

                }
            }
        });
        //task.cancel(); // 可以取消任务
        //task.waitUntilFinished(); // 可以等待直到任务完成
    }

    public void beginupload(Context context, String filename, String uploadFilePath) {
        //通过填写文件名形成objectname,通过这个名字指定上传和下载的文件
        String objectname = filename;
        if (objectname == null || objectname.equals("")) {
            ToastUtils.showToast("文件名不能为空");
            return;
        }
        //下面3个参数依次为bucket名,Object名,上传文件路径
        PutObjectRequest put = new PutObjectRequest(bucketName, objectname, uploadFilePath);
        if (uploadFilePath == null || uploadFilePath.equals("")) {
            //ToastUtils.showShort("请选择图片....");
            return;
        }
        put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
            @Override
            public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
                double progress = currentSize * 1.0 / totalSize * 100.f;

                if (progressCallback != null) {
                    progressCallback.onProgressCallback(progress);
                }
            }
        });
        @SuppressWarnings("rawtypes")
        OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
            @Override
            public void onSuccess(PutObjectRequest request, PutObjectResult result) {
                PutObjectResult result1 = result;
                if (upLoadSucessCallback != null) {
                    upLoadSucessCallback.onUploadSucessCallback(result);
                }
            }

            @Override
            public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
                // 请求异常
                ToastUtils.showToast("UploadFailure");
                if (clientExcepion != null) {

                    clientExcepion.printStackTrace();
                }
                if (serviceException != null) {

                }
            }
        });
        //task.cancel(); // 可以取消任务
        //task.waitUntilFinished(); // 可以等待直到任务完成
    }


    public  void  upDataFile(){
        byte[] uploadData = new byte[100 * 1024];
        new Random().nextBytes(uploadData);

        PutObjectRequest put = new PutObjectRequest("<bucketName>", "<objectName>", uploadData);

        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());
        }
    }


    public ProgressCallback getProgressCallback() {
        return progressCallback;
    }

    public void setProgressCallback(ProgressCallback progressCallback) {
        this.progressCallback = progressCallback;
    }

    public interface ProgressCallback {
        void onProgressCallback(double progress);
    }

    public UpLoadSucessCallback getUpLoadSucessCallback() {
        return upLoadSucessCallback;
    }

    public void setUpLoadSucessCallback(UpLoadSucessCallback upLoadSucessCallback) {
        this.upLoadSucessCallback = upLoadSucessCallback;
    }

    public interface UpLoadSucessCallback {
        void onUploadSucessCallback(PutObjectResult result);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值