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腾讯云对象存储上传图片的主要内容,如果未能解决你的问题,请参考以下文章