使用规则
概述
BOS 图片处理 V2.0 版本,是 BOS 全新的处理协议。相较 V1.0 版本,V2.0 版本支持更多图片处理功能,并采用全新的命令方式。您仍然可以通过 BOS 图片处理 V1.0 版本方式来访问 BOS 图片处理服务,但今后 V1.0 版本功能将不再更新。
在使用 BOS 图像处理功能前,您需要将原始图片上传到 BOS。BOS 的每个 Bucket 都默认开通图片处理的功能,您无需额外开通,也无需使用特定域名访问图片处理服务。当访问图片 URL 时,在 Querystring 中通过x-bce-process参数指定图片处理命令,即可触发 BOS 图片处理功能。
说明:
- 为了提升图片的安全性,BOS 也支持对指定 Bucket 内的图片开启原图保护。即开启原图保护后,如果图片获取者未验证被授权的签名,则只能通过样式方式访问处理后的图片,直接访问原图或通过处理参数访问的方式会被拒绝。目前支持在控制台对原图保护功能进行开启或关闭,也支持通过 API 进行相关操作,并可通过 resource 字段指定该功能生效范围。
规则与限制
- 支持的原图格式:jpg、png、bmp、webp、heic、gif、avif;
- 支持的目标格式:jpg、png、bmp、webp、heic、gif、avif;
- 处理文件大小不超过20M;
- 原图宽高不超过30000像素且总像素不超过2亿像素,针对动图,原图宽 x 高 x 帧数不超过2亿像素,对于图片水印,水印图加原图不超过2亿像素;
- 处理结果输出图片宽高不超过9999像素,包括管道和子命令间的中间输出图片;
- 最多可以同时指定16组操作,即16个action;
- 一个action下不可以重复指定同一个参数;
- 样式名称支持数字,字母和下划线组合,且首位不能为下划线,最长 64 个字符;
- 动图处理结果不超过 20 帧;
使用方式
BOS 支持通过命令和样式两种方式访问图片服务。
1. 命令方式
图片处理命令形式为:
x-bce-process=image/${action},${key}_${value},${key}_${value}/${action},${key}_${value}
其中:
- image:BOS支持多种数据处理形式,均使用x-bce-process参数触发,当使用图片处理时,需要指定此处名字为image。
- action:BOS支持多种图片处理命令,每种图片处理命令称作一种action,比如缩放resize,裁剪crop等。
- key:每种action支持多种具体的处理参数,比如缩放宽度w,高度h等。
- value:处理参数取值。
- 分隔符:
分隔符名称 | 分隔符 | 两侧顺序 | 说明 |
---|---|---|---|
处理分隔符 | / | 有关 | 多个action之间的分隔符,前后action顺序执行 |
参数分隔符 | , | 无关 | 多处理参数项之间的分隔符 |
值分隔符 | _ | 固定顺序 | 参数名与参数值之间的分隔符 |
如对图片进行等比缩放图片,且缩放后的图片宽最大200,高最大100,亮度-5,格式转化为webp,则对应命令为:
http://bucket-A.bj.bcebos.com/sample.jpg?x-bce-process=image/resize,m_lfit,w_200,h_100/bright,b_-10/format,f_webp
2.样式方式
您可以通过控制台将某一项或多项图片处理命令保存为样式,并为其创建创建名称。之后,您可以通过样式达到图像处理的效果,简化原本一系列复杂命令操作和参数,只需通过很简短的 URL 即可实现相同的效果。
通过样式的访问语法:
http://${domain}/${objectkey}?x-bce-process=style/${stylename}
详细说明:
- style:当使用图片样式访问时,需要固定指定为style。
- stylename:访问的样式style的名称。
例如:您创建一个名称为 mystylename 的样式,可实现宽度为 200 px,高度为 300 px 的等比例最大缩放,并同步支持自适应旋转(命令为:pxresize,m_lfit,limit_0,w_200,h_300/auto-orient,o_1
),您可以直接调用 mystylename 的名称来访问图像处理:
http://bucket-A.bj.bcebos.com/sample.jpg?x-bce-process=style/mystylename
控制台添加/删除样式
您可以通过 BOS 控制台添加或删除样式。
1. 登录百度智能云官网
登录百度智能云官网。
2. 进入 BOS 控制台
在页面左侧导航栏中选择 "存储和 CDN > 对象存储 BOS" 进入 BOS 控制台。
3. 选择 Bucket 并进入图像处理页面
在左侧的 Bucket 列表中选择 Bucket 名称并进入图像处理页面。在该页面中,您可以创建新的图像处理样式,也可以在列表中查看已创建的图像处理样式。
4. 添加样式
点击添加样式按钮,进入添加样式页面。关于图像处理协议 V2.0 版本的样式设置方法,你可以查看图像处理协议 2.0 ;关于图像处理协议 V1.0 版本的样式设置方法,您可以查看图像处理协议 1.0。
在控制台中,您可以通过基础编辑方式和高级编辑方式对样式进行编辑。其中基础编辑方式是通过图形化界面对样式进行编辑,而高级编辑方式需要您输入相应的命令语句进行设置。
在基础编辑中,您可以进行样式名称设置和缩略设置。
也可以对该图像进行输出设置和水印设置。
在高级编辑中,您可以直接通过命令行设置。图片服务的命令行具体操作请参见图片处理服务 2.0和图像处理协议 1.0。
5. 添加列表
样式添加完成后会在图像处理的样式列表中显示,您可以通过操作列的“查看命令”查看该样式对应的命令,也可以预览样式,或编辑删除该样式。
注意:
- 图像处理协议 2.0 生成的样式,仅展示在新版协议的列表中;图像处理协议 1.0 生成的样式,仅展示在旧版协议的列表中,两个协议下的样式不会共同展示,请在页面上方切换版本进行查看。
说明:
- BOS 图片处理命令分新旧两种版本,因此一个图片处理样式所对应的实际图片处理命令可以是新版或旧版。
- 本文
x-bce-process=style/${stylename}
的访问方式只能访问新版命令所对应的样式,旧版本命令所对应的样式仍需通过旧版本@!方式访问。
图片处理结果返回
BOS 会将处理完的图片信息通过 HTTP Header 的方式返回。
除标准 HTTP Header 中已有的信息,其他信息用x-bce-image-info
头返回,格式为key1=value;key2=value2;...
返回内容参考如下:
信息 | 响应头 | 值 |
---|---|---|
format | Content-Type: image/jpeg |
jpeg |
size | Content-Length: 12608 |
12608 |
md5 | Content-MD5: IsfLjdB8Uu+kwmuFKJ1VZw== |
IsfLjdB8Uu+kwmuFKJ1VZw== |
width | x-bce-image-info:width=200 |
200 |
height | x-bce-image-info:height=113 |
113 |