通过 API 使用极智压缩

最近更新时间:2024-07-24 15:28:11

我的收藏

功能描述

极智压缩通过智能判断图片的主观质量进行自动调节,在不改变图片原格式的基础上,使图片体积相比原图有显著的降低,同时在视觉效果上可以最大程度贴近原图,帮助您减少图片访问流量、提升图片访问速度。该功能支持以下处理方式:
下载时处理
上传时处理
云上数据处理

授权说明

通过子账号使用时,需要授予 ci:SetImageSlim权限,详情请参见 数据万象 action
下载时处理:授权策略中 action 设置为 cos:GetObject
上传时处理:授权策略中 action 设置为 cos:PutObject
云上数据处理:授权策略中 action 设置为 cos:GetObjectcos:PutObject(注意 GetObject 对应的 resource 为源文件,PutObject 对应的 resource 为转存的文件)。

服务开通

使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶
使用该功能需提前通过控制台或接口开通极智压缩 API 使用功能。

使用限制

使用该接口时,请先确认相关限制条件。详情请参见 使用限制

费用说明

图片极智压缩为付费服务,产生的费用将由数据万象收取,详细计费说明可参见 图片处理费用
如果采用下载时处理的方式,且通过外网进行下载,调用会产生 流量费用

接口形式

1. 下载时处理

GET /<ObjectKey>?imageSlim HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>

2. 上传时处理

PUT /<ObjectKey> HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
Pic-Operations:
{
"is_pic_info": 1,
"rules": [{
"fileid": "exampleobject.jpg",
"rule": "imageSlim"
}]
}

3. 云上数据处理

POST /<ObjectKey>?image_process HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Content-length: Size
Authorization: Auth String
Pic-Operations:
{
"is_pic_info": 1,
"rules": [{
"fileid": "exampleobject.jpg",
"rule": "imageSlim"
}]
}
说明:
Authorization: 携带鉴权信息,用于验证请求的合法性的请求头,Pic-Operations头部需签入签名信息中,详情请参见 请求签名 文档。
Pic-Operations 为 json 格式的字符串,具体参数信息可参考 图片处理机制介绍
fileid ObjectKey 相同时,处理后的图片将覆盖原图存储;不相同时将分别存储原图和处理后图片。
fileid的值需要经过 URLEncode。

处理参数说明

参数
含义
是否必选
ObjectKey
对象文件名,例如 folder/sample.jpg。
imageSlim
固定参数,表示极智压缩。
说明:
使用下载时处理时,可通过 X-Slimflag 响应头部来判断图片是否已压缩,该响应头包含以下三个值:
0:表示压缩失败;
1:表示压缩成功;
2:表示未进行压缩,返回了原图。

实际案例

说明:
本篇文档中的实际案例仅包含下载时处理,该类处理不会保存处理后的图片至存储桶。如有保存需求,您可查阅 图片处理机制介绍 文档并配置上传时处理云上数据处理
假设原图格式为 png,图片大小为1335.2KB,如下图所示:

img


将图片进行极智压缩处理,请求 URL 如下:
http://example-1258125638.cos.ap-shanghai.myqcloud.com/sample.png?imageSlim
效果如下:
img


压缩率对比
格式
图片大小
png(原图)
1335.2KB
png(极智压缩图)
549KB(压缩率58.88%)