String endPoint = MyConstants.endPoint; String ak = MyConstants.ak; String sk = MyConstants.sk; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); new Thread() { @Override public void run() { super.run(); // upload(obsClient, MyConstants.localfile); uploadPoint(obsClient, MyConstants.localfile2); } }.start();
/** * 断点续传 * * @param obsClient * @param localfile */ private void uploadPoint(ObsClient obsClient, String localfile) { String objectName = "test.apk";//对应上传之后的文件名称 UploadFileRequest request = new UploadFileRequest(MyConstants.bucketName, objectName); request.setUploadFile(localfile); // localfile为上传的本地文件路径,需要指定到具体的文件名 // 设置分段上传时的最大并发数 request.setTaskNum(5); // 设置分段大小为10MB request.setPartSize(10 * 1024 * 1024); // 开启断点续传模式 request.setEnableCheckpoint(true); request.setProgressListener(new ProgressListener() { @Override public void progressChanged(ProgressStatus status) { // 获取上传平均速率 Log.i("PutObject", "AverageSpeed:" + status.getAverageSpeed()); // 获取上传进度百分比 Log.i("PutObject", "TransferPercentage:" + status.getTransferPercentage()); } }); // 每上传1MB数据反馈上传进度 request.setProgressInterval(1024 * 1024L); try { // 进行断点续传上传 CompleteMultipartUploadResult result = obsClient.uploadFile(request); Log.i("PutObject", " result.getStatusCode():" + result.getStatusCode()); //result.getStatusCode():200就是成功 } catch (ObsException e) { // 发生异常时可再次调用断点续传上传接口进行重新上传 } }