功能概述
腾讯云数据万象通过 imageMogr2 接口提供格式转换、渐进显示功能。该功能支持以下处理方式:
下载时处理
上传时处理
云上数据处理
授权说明
下载时处理:授权策略中 action 设置为
cos:GetObject
。上传时处理:授权策略中 action 设置为
cos:PutObject
。云上数据处理:授权策略中 action 设置为
cos:GetObject
、cos:PutObject
(注意 GetObject 对应的 resource 为源文件,PutObject 对应的 resource 为转存的文件)。服务开通
使用该功能将默认为您开通数据万象,并绑定存储桶,无需角色授权,即可直接使用。
使用限制
费用说明
该接口为付费服务,产生的费用将由数据万象收取,详细计费说明可参见 图片处理费用。
如果采用下载时处理的方式,且通过外网进行下载,调用会产生 流量费用。
转换格式说明
格式转换支持的格式:区分为普通格式和高级格式,如下表所示:
注意:
数据万象默认支持高级格式图片处理,如您不需要处理高级格式,可在控制台手动关闭,查看操作指引。
高级格式处理当前处于公测阶段,与普通格式处理费用相同,具体费用请参见 图片处理费用-基础图片处理。公测结束时间请关注后续通知信息。
类别 | 支持的原图格式 | 可转换为以下格式 | 支持的处理方式 | 说明 |
普通格式 | jpg/jpeg、png、bmp、webp、tiff、gif | jpg/jpeg、png、apng、bmp、webp、tiff、gif、avif、heif/heic、tpg、psd | 持久化处理 下载时处理 | 如需转换图片为 avif、heif/heic、tpg 格式,请先开通 图片高级压缩。 有关持久化处理和下载时处理的区别,请查看 图片处理机制介绍。 仅支持通过持久化处理将图片转换为 psd 格式。 |
高级格式 | avif、heif/heic、tpg、apng | | 持久化处理 下载时处理 | |
| psd、svg、raw、ai、eps、dng、cr3、crw、mos、erf、3fr、fff、kdc、dcr、rw2、pef、sr2、srf、arw、nef、nrw、orf、mef、mrw | | 持久化处理 | |
接口形式
1. 下载时处理
GET /<ObjectKey>?imageMogr2/format/<Format> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>
2. 上传时处理
PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "imageMogr2/format/<Format>"}]}
3. 云上数据处理
POST /<ObjectKey>?image_process HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-length: SizeAuthorization: Auth StringPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "imageMogr2/format/<Format>"}]}
说明:
Authorization: 携带鉴权信息,用于验证请求的合法性的请求头,Pic-Operations头部需签入签名信息中,详情请参见 请求签名 文档。
Pic-Operations 为 json 格式的字符串,具体参数信息可参考 图片处理机制介绍。
当
fileid
与 ObjectKey
相同时,处理后的图片将覆盖原图存储;不相同时将分别存储原图和处理后图片。fileid
的值需要经过 URLEncode。处理参数说明
参数 | 含义 | 是否必选 |
ObjectKey | 对象文件名,例如 folder/sample.jpg。 | 是 |
/format/<Format> | <Format>可填写的值:jpg、bmp、gif、png、webp、heif、avif、tpg、tiff、psd。 | 是 |
/minsize/1 | 携带此参数时,如果处理后图片体积大于原图,会返回原图不处理。 | 否 |
/ignore-error/1 | 当处理参数中携带此参数时,针对文件过大、参数超限等导致处理失败的场景,会直接返回原图而不报错。 | 否 |
说明:
如果将一个动态图转换为仅支持静态图的格式(如jpg),会自动取动态图的第一帧作为转换后的图片。
如果将一个静态图转换为动态图格式(如gif),转换后的动态图则仅有一帧。
仅支持以持久化处理(上传时处理或云上数据处理)方式转换为 psd 格式。
如果原图是支持透明通道的格式,转换成 JPG 等不支持透明通道的格式,透明部分默认会填充为白色。
实际案例
说明:
案例一:将 jpeg 格式的原图片转换为 png 格式
http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?imageMogr2/format/png
案例二:将 jpeg 格式的原图片转换为 png 格式并携带私有文件签名
处理方式同上,仅增加签名部分,并与图片处理参数以“&”连接,示例如下:
http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?q-sign-algorithm=<signature>&imageMogr2/format/png
说明:
注意事项
为了避免未授权人员通过访问不携带处理参数的链接实现访问和下载原图的情况,您可同时将处理参数签入到请求签名中,处理参数整体是参数的 key,value 为空,如下是简单的示例(仅做样式参考,可能已经过期无法直接访问),详细计算方法请参见 请求签名。
http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?q-sign-algorithm=sha1&q-ak=AKID********************&q-sign-time=1593342360;1593342720&q-key-time=1593342360;1593342720&q-header-list=&q-url-param-list=watermark%252f1%252fimage%252fahr0cdovl2v4yw1wbgvzlteyntewmdawmdqucgljc2gubxlxy2xvdwquy29tl3nodwl5aw4uanbn%252fgravity%252fsoutheast&q-signature=26a429871963375c88081ef60247c5746e834a98&watermark/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn/gravity/southeast