美文网首页
Android OSS图片上传示例代码

Android OSS图片上传示例代码

作者: 宁静世界 | 来源:发表于2018-08-09 13:48 被阅读0次

    第一步:在Application的onCreate中初始化,并配置相关信息

    private void initOSS() {
        String endpoint = "http://oss-cn-beijing.aliyuncs.com";
        //推荐使用OSSAuthCredentialsProvider。token过期可以及时更新
        OSSCredentialProvider credentialProvider = new OSSPlainTextAKSKCredentialProvider("LTAIwDPRYdxM2vyz", "qK2Bwfa4i8me1wMc6BIIyA8nlajz5I");
        //该配置类如果不设置,会有默认配置,具体可看该类
        ClientConfiguration conf = new ClientConfiguration();
        conf.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒
        conf.setSocketTimeout(15 * 1000); // socket超时,默认15秒
        conf.setMaxConcurrentRequest(5); // 最大并发请求数,默认5个
        conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次
        mOss = new OSSClient(getApplicationContext(), endpoint, credentialProvider);
        if (isDebug) {
            OSSLog.enableLog();
        }
    }
    

    第二步:上传图片

    public static void upImage(String file) {
        String newPath = "Android/" + new SimpleDateFormat("yyyyMM").format(new Date()) + "/" + UUID.randomUUID() + file.substring(file.lastIndexOf("."));
        PutObjectRequest put = new PutObjectRequest("mantuoluo", newPath, file);
    // 异步上传时可以设置进度回调
        put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
            @Override
            public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
                Log.d("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize);
            }
        });
        OSS oss = MyApplication.getInstance().getmOss();
        OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
            @Override
            public void onSuccess(PutObjectRequest request, PutObjectResult result) {
                Log.d("PutObject", "UploadSuccess" + Constants.DOWNLOADURL + "/" + request.getObjectKey());
                Log.d("ETag", result.getETag());
                Log.d("RequestId", result.getRequestId());
    //                mJsonCallBackWrapper.onSuccess(Constant.DOWNLOADURL + "/" + request.getObjectKey());
            }
    
            @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());
    //                    mJsonCallBackWrapper.onError(serviceException.getRawMessage());
                }
            }
        });
    }
    

    public static final String DOWNLOADURL = "http://mantuoluo.oss-cn-beijing.aliyuncs.com";

    请根据实际情况配置 bucketName,accessKeyId,accessKeySecret

    相关文章

      网友评论

          本文标题:Android OSS图片上传示例代码

          本文链接:https://www.haomeiwen.com/subject/xhwqbftx.html