因为项目使用的是腾讯云的对象存储,数据万象正是基于对象存储而为客户提供的专业一体化的图片解决方案,涵盖图片上传、下载、存储、处理、识别等功能。本文说的是如何使用数据万象对图片进行等比例缩放的问题。
1 前提
创建好存储桶,为创建好的存储桶开通数据万象服务,这里不多说,不懂的童鞋,请点击如何创建存储桶以及开通数据万象的链接。
2 如何使用
腾讯云的官方文档给出了API,持久化处理,这个可以使用postman利用http协议来调试的。分为两种情况:
2.1 上传时处理(同时上传原图和缩略图)
2.2 云上数据处理(原图已上传,现上传缩略图)
2.3 代码实现
不管是上传时处理还是云上数据处理,它们的共同点都需要生成经过授权的签名Authorization
2.3.1 获取授权的签名Authorization
/**
* 生成授权的签名
* @param secretId 密钥的id
* @param secretKey 密钥的key
* @param uploadFileName 上传的文件名
* @param httpMethodName http的方法(post、put)
* @return
*/
public String createAuthorizedSignature(String secretId, String secretKey, String uploadFileName, HttpMethodName httpMethodName){
COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
COSSigner signer = new COSSigner();
//设置过期时间为1个小时
Date expiredTime = new Date(System.currentTimeMillis() + 3600L * 1000L);
//授权的签名
String authorizedSignature = signer.buildAuthorizationStr(
httpMethodName,
FssConsts.RIGHT_SLASH + uploadFileName,
cred,
expiredTime
);
return authorizedSignature;
}
2.3.2 上传时处理
/**
* 上传原图,同时生成缩略图(put方法)
* 限定缩略图的宽度和高度的最大值分别为 200 和 200,进行等比缩放。
*
* 请求路径 :http://bucketName-appId.pic.region.myqcloud.com/te