对象存储COS数据处理-灵活使用图片参数
对象存储COS数据处理-灵活使用图片参数
随着5G等技术的普及,信息的传播越发的快速,更好的满足了民众对于信息的诉求。越来越多的产品提供了丰富的信息资源,包括图片、视频、音频等等。如何存储和处理这些数据是一个产品需要考虑的重要方面,如果由产品团队自己来进行图片、音视频和文档数据的存储和处理,需要投入硬件采购、软件系统部署和维护成本,同时也需要专业的技术团队。
腾讯云对象存储COS数据处理能力更好地为产品团队提供专业稳定的云端处理能力,基于数据万象CI的云端数据处理能力具有规模大、专业性强等特点,同时也经过内外部产品大规模的检验。
数据处理流程
2、auto-orient旋转:
auto-orient旋转(读取EXIF的信息并且自动旋转输出图片):
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo\\_270.jpg
默认显示:
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo_270.jpg?imageMogr2/auto-orient
auto-orient显示:
基础图片处理-缩放
通过imageMogr2参数提供了缩放功能,可以支持多种限制方式的缩放,同时针对需要填充时可以支持按照颜色进行填充。
1、宽高同时缩放30%
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?imageMogr2/thumbnail/!30p
2、缩放并且填充颜色
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?imageMogr2/thumbnail/300x200/pad/1/color/IzNEM0QzRA
jpg转为webp格式,可以达到30+%的质量减少。
jpg转为heif格式,可以达到50+%的质量减少。
基础图片处理-灵活使用图片格式转换参数
针对如此多的图片格式,如何更好的使用这些图片格式让客户业务获得更好的业务体验。如下推荐参数中,大家发现多了ignore-error和auto-orient两个参数key,这两个参数key可以更好的规避一些超大图或者图信息缺少导致的转换失败,可以优先返回原图。注意,COS服务是无法感知到客户的使用环境,所以想要准确的使用各种格式,客户需要在客户主动判断使用环境选择最优的格式,使得客户业务更快的图片加载体验。
1、对于一些新的移动系统使用IOS 11以上及 Android P 系统预览,我们可以优先让客户业务使用heif格式。
imageMogr2/auto-orient/ignore-error/1|imageMogr2/format/heif
2、对于常用的系统或者环境,可以使用让客户业务使用webp格式。
imageMogr2/auto-orient/ignore-error/1|imageMogr2/format/webp
3、对于一些低系统或者需要兼容性高,可以使用让客户使用guetzli压缩
imageMogr2/auto-orient/ignore-error/1|imageMogr2/format/guetzli
4、对于使用CDN的大量客户,我们也可以通过和CDN的集成的方式为客户提供格式的支持。
4.1、Webp自适应能力
HTTP 请求头中 accept 头部包含 image/webp。
图片后缀为 jpg、jpeg、bmp、gif、png。
4.2、Guetzli自适应能力
HTTP 请求头中 accept 头部包含 image/guetzli。
图片后缀为 jpg、jpeg。
基础图片处理-水印能力
通过watermark参数提供了多种水印能力,包括图片水印,文字水印,方便用户使用。
https://cloud.tencent.com/act/pro/cosExhibition
基础图片处理-水印能力扩展
2020年作为在线教育和在线办公元年,催生了很多关于版权保护的需要,各大公司和学校内部数据都需要保护能力,这时候图片的水印能力就可以做到一些防护。但是客户可能会疑问通过图片链接就可以获得到图片原图,是否能真正的保护,针对这种情况我们提供了一种参数加密的能力,这样用户就完全不知道图片的原始链接。如您想使用该功能,可提交工单或点击右侧联系我们,以开启参数加密。您只需提供需要加密的bucket名称,并根 据下文中的加密算法对您的请求链接进行加密开发。
1、文字水印
2、加密方式:
1、加密算法:AES
2、加密模式:cbc
3、加密key:自定(双方一致,需使用16位字符串)
4、加密vi:自定(双方一致,需使用16位字符串)
5、加密流程
6、按照“ci-process=?<compress\\_param>”格式拼接请求串,对请求串使用AES的CBC模式加密,然后对加密后的二进 制内容再进行urlsafe的base64编码,最终使用“域名/<urlsafe\\_base64encode(encrypt)>”进行访问
注:
fileid:资源名称 compress\\_param:处理参数,如?imageMogr2/format/webp
3、示例:
1、原始URL:
https://demo-1253960454.cos.ap-chongqing.myqcloud.com/demo.jpg?watermark/2/text/Q09T5pWw5o2u5aSE55CG/fill/IzNEM0QzRA/fontsize/20/dissolve/50/dx/20/dy/20/batch/1/degree/45
2、加密key: TIwODEwMDEucGljc 加密vi: NTIwODEwMDEu2RzL
3、待加密串:
ci-process=demo.jpg?watermark/2/text/Q09T5pWw5o2u5aSE55CG/fill/IzNEM0QzRA/fontsize/20/dissolve/50/dx/20/dy/20/batch/1/degree/45
4、加密并urlsafe\\_base64encode后:
Sz2-8N\\_7VlMBCynB\\_Rv48QZW3blBRI-cCNJcp2H1rm4Oji-soJhk4xYirO8w0dJwRWyJh\\_vswJQ1UoyoheqvnoklGmdu\\_7UxTpX0jlihybRDY9GKDLWroNr7Ch-zc0BxE-1kxIbwoReBu558D\\_BRmn-K\\_b-Q3HH69fyL6HVwIks=
5、https://demo-1253960454.cos.ap-chongqing.myqcloud.com/Sz2-8N\\_7VlMBCynB\\_Rv48QZW3blBRI-cCNJcp2H1rm4Oji-soJhk4xYirO8w0dJwRWyJh\\_vswJQ1UoyoheqvnoklGmdu\\_7UxTpX0jlihybRDY9GKDLWroNr7Ch-zc0BxE-1kxIbwoReBu558D\\_BRmn-K\\_b-Q3HH69fyL6HVwIks=?imageMogr2/auto-orient
注意:
如果bucket为私有读写,需要对加密后的串(当做虚拟文件)做签名,否则无法通过COS的签名验证。
?imageMogr2/auto-orient参数用于标识该请求是图片类的请求。