功能描述
图片压缩指在图片质量保持不变的情况,尽可能的减小图片大小,以达到节省图片存储空间、减少图片访问流量、提升图片访问速度的效果。
对象存储(Cloud Object Storage,COS)基于 数据万象(Cloud Infinite,CI) 产品推出了 SVG 压缩功能,可以在不影响显示效果的情况下,通过一定的优化算法删除 SVG 文件中的冗余信息,最终达到减少SVG文件体积的目的。
授权说明
下载时处理:授权策略中 action 设置为
cos:GetObject
、ci:SetImageAdvancedCompression
。上传时处理:授权策略中 action 设置为
cos:PutObject
、ci:SetImageAdvancedCompression
。云上数据处理:授权策略中 action 设置为
cos:GetObject
、cos:PutObject
、ci:SetImageAdvancedCompression
(注意 GetObject 对应的 resource 为源文件,PutObject 对应的 resource 为转存的文件)。服务开通
使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶。
使用 SVG 压缩,需要先开通存储桶的图片高级压缩功能,您需要在相应的存储桶配置页中通过开关按钮开启功能,详情请参见 图片高级压缩。
使用限制
支持格式:仅支持将 svg 格式图片作为输入。
体积限制:处理图片原图大小不超过32MB。
使用方式
对象存储通过数据万象 imageMogr2 接口提供 SVG 压缩功能。
该功能支持以下的处理方式:
下载时处理
上传时处理
云上数据处理
说明
接口示例
1. 下载时处理
GET /<ObjectKey>?imageMogr2/format/svgc HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: <Auth String>
处理参数说明
参数 | 含义 |
<ObjectKey> | 对象文件名,例如 folder/sample.jpg。 |
imageMogr2/format/svgc | 操作参数,表示该操作为 svg 压缩。 |
2. 上传时处理
PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations:{"is_pic_info": 0,"rules": [{"fileid": "exampleobject","rule": "imageMogr2/format/svgc"}]}
处理参数说明
参数 | 含义 |
<ObjectKey> | 对象文件名,例如 folder/sample.jpg。 |
Pic-Operations | 代表处理参数的头部,json 格式的字符串。 |
is_pic_info | 是否返回原图信息,svg 不支持返回原图信息,仅可填写为0。 |
rules | 处理规则数组,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理 |
fileid | 处理后文件的保存路径及名称。当 fileid 与 ObjectKey 相同时,处理后的文件将覆盖原文件存储;不相同时将分别存储原文件和处理后文件。名称规则说明:名称需要经过 URLEncode。 以 / 开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。 不以 / 开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。 不以 / 结尾,否则会产生空文件名。 |
rule | 处理规则,svg 压缩的规则为:imageMogr2/format/svgc。 |
3. 云上数据处理
POST /<ObjectKey>?image_process HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-length: SizeAuthorization: Auth StringPic-Operations:{"is_pic_info": 0,"rules": [{"fileid": "exampleobject","rule": "imageMogr2/format/svgc"}]}
处理参数说明
参数 | 含义 |
<ObjectKey> | 对象文件名,例如 folder/sample.jpg。 |
image_process | 表示处理的参数,固定为 image_process。 |
Pic-Operations | 代表处理参数的头部,json 格式的字符串。 |
is_pic_info | 是否返回原图信息,svg 不支持返回原图信息,仅可填写为0。 |
rules | 处理规则数组,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理 |
fileid | 处理后文件的保存路径及名称。当 fileid 与 ObjectKey 相同时,处理后的文件将覆盖原文件存储;不相同时将分别存储原文件和处理后文件。名称规则说明:名称需要经过 URLEncode。 以 / 开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。 不以 / 开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。 不以 / 结尾,否则会产生空文件名。 |
rule | 处理规则,svg 压缩的规则为:imageMogr2/format/svgc。 |