Android腾讯云对象存储上传图片
Posted 编程小弟弟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android腾讯云对象存储上传图片相关的知识,希望对你有一定的参考价值。
最近使用腾讯云对象存储,项目比较赶,想找个现有的复制结果找了半天,全是官方文档,最后乖乖的自己写了,记录一下以后用的时候方便。
腾讯云对象存储官方文档地址:https://cloud.tencent.com/document/product/436/12159
public class CosServiceUtils { String region = "存储桶所属地区"; CosXmlService cosXmlService; UpLoadCallBack upLoadCallBack;//自己定义一个接口接收返回的东西 public void initCosService(Context context,String tmpSecretId,String tmpSecretKey,String sessionToken,Long startTime,Long expiredTime){ CosXmlServiceConfig serviceConfig = new CosXmlServiceConfig.Builder() .setRegion(region) .isHttps(true) // 使用 HTTPS 请求 .builder(); cosXmlService = new CosXmlService(context, serviceConfig, new BasicLifecycleCredentialProvider(){ @Override protected QCloudLifecycleCredentials fetchNewCredentials() throws QCloudClientException { return new SessionQCloudCredentials(tmpSecretId,tmpSecretKey,sessionToken,startTime,expiredTime); } }); } public void setUpLoadCallBack(UpLoadCallBack upLoadCallBack){ this.upLoadCallBack = upLoadCallBack; } public void upLoadFile(Context context,String imgurl){ TransferConfig transferConfig = new TransferConfig.Builder().build(); TransferManager transferManager = new TransferManager(cosXmlService, transferConfig); String bucket = "你自己的BucketName"; //存储桶,格式:BucketName-APPID String cosPath = "userimg/"+MyUtils.INSTANCE.TimestampToDate(System.currentTimeMillis()/1000+"","yyyyMMddHHmmss")+".jpg"; //对象在存储桶中的位置标识符,即称对象键(这里我用的时间来当做图片的名字) String srcPath = imgurl; String uploadId = null; // 上传文件 PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, cosPath, srcPath); COSXMLUploadTask cosxmlUploadTask = transferManager.upload(putObjectRequest, uploadId); //设置返回结果回调 cosxmlUploadTask.setCosXmlResultListener(new CosXmlResultListener() { @Override public void onSuccess(CosXmlRequest request, CosXmlResult result) { COSXMLUploadTask.COSXMLUploadTaskResult cOSXMLUploadTaskResult = (COSXMLUploadTask.COSXMLUploadTaskResult) result; upLoadCallBack.onSuccess(cOSXMLUploadTaskResult.accessUrl); } @Override public void onFail(CosXmlRequest request, CosXmlClientException clientException, CosXmlServiceException serviceException) { if (clientException != null) { clientException.printStackTrace(); } else { serviceException.printStackTrace(); } upLoadCallBack.onFail(); } }); } }
以上是关于Android腾讯云对象存储上传图片的主要内容,如果未能解决你的问题,请参考以下文章