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