使用规则
接口描述
概述
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。 - 处理文件大小不超过 20 MB。
- 原图宽高不超过 30000 像素且总像素不超过 2 亿像素。针对动图,原图宽 × 高 × 帧数不超过 2 亿像素。对于图片水印,水印图加原图不超过 2 亿像素。
- 处理结果输出图片宽高不超过 9999 像素,包括管道和子命令间的中间输出图片。
- 最多可以同时指定 16 组操作,即 16 个
action。 - 一个
action下不可以重复指定同一个参数。 - 样式名称支持数字、字母和下划线组合,且首位不能为下划线,最长 64 个字符。
- 动图处理结果不超过 20 帧。
请求
BOS 支持通过命令和样式两种方式访问图片服务。
请求结构
命令方式请求结构如下:
1GET http://${domain}/${objectkey}?x-bce-process=image/${action},${key}_${value},${key}_${value}/${action},${key}_${value}
实际发起 HTTP 请求时,x-bce-process 参数值需要按 URL 规范编码。文档中的请求结构和示例为便于阅读,展示为解码后的命令形式。
请求头域
| 头域 | 必填 | 说明 |
|---|---|---|
| 无固定业务请求头域 | 否 | 访问公有 Object 时,可直接访问图片 URL。访问私有 Object 或开启原图保护的 Bucket 时,需要使用被授权的签名访问请求。 |
请求参数
公共请求参数
| 参数名 | 类型 | 位置 | 必填 | 说明 |
|---|---|---|---|---|
| domain | String | Host | 是 | 图片所在 BOS Bucket 的访问域名,例如 Bucket 默认域名或绑定的自定义域名。 |
| objectkey | String | Path | 是 | 原始图片在 BOS 中的 Object Key。使用图片处理前,需要先将原始图片上传到 BOS。 |
| x-bce-process | String | Query | 是 | 图片处理触发参数。命令方式取值为 image/${action},${key}_${value}...,样式方式取值为 style/${stylename}。 |
命令方式参数
| 参数名 | 类型 | 位置 | 必填 | 说明 |
|---|---|---|---|---|
| image | String | Query | 是 | 固定值。BOS 支持多种数据处理形式,均使用 x-bce-process 参数触发;使用图片处理时,需要指定为 image。 |
| action | String | Query | 是 | 图片处理命令。每种图片处理命令称作一种 action,例如缩放 resize、裁剪 crop 等。最多可以同时指定 16 个 action。 |
| key | String | Query | 是 | 每种 action 支持的具体处理参数,例如缩放宽度 w、高度 h 等。 |
| value | String | Query | 是 | 处理参数取值。取值规则由对应 action 和 key 决定。 |
分隔符
| 分隔符名称 | 分隔符 | 分隔符两侧顺序 | 说明 |
|---|---|---|---|
| 处理分隔符 | / |
有关 | 多个 action 之间的分隔符,前后 action 顺序执行。 |
| 参数分隔符 | , |
无关 | 多个处理参数项之间的分隔符。 |
| 值分隔符 | _ |
固定顺序 | 参数名与参数值之间的分隔符。 |
示例
请求示例
命令方式
如对图片进行等比缩放,且缩放后的图片宽最大为 200、高最大为 100,亮度为 -10,格式转化为 webp,则对应命令为:
1http://bucket-A.bj.bcebos.com/sample.jpg?x-bce-process=image/resize,m_lfit,w_200,h_100/bright,b_-10/format,f_webp
样式方式请求结构如下:
1GET http://${domain}/${objectkey}?x-bce-process=style/${stylename}
样式方式参数
| 参数名 | 类型 | 位置 | 必填 | 说明 |
|---|---|---|---|---|
| style | String | Query | 是 | 固定值。使用图片样式访问时,需要指定为 style。 |
| stylename | String | Query | 是 | 图片处理样式名称。样式名称支持数字、字母和下划线组合,且首位不能为下划线,最长 64 个字符。调用前需确保样式已创建。 |
样式方式
例如:您创建一个名称为 mystylename 的样式,可实现宽度为 200 px、高度为 300 px 的等比例最大缩放,并同步支持自适应旋转(命令为:pxresize,m_lfit,limit_0,w_200,h_300/auto-orient,o_1),您可以直接调用 mystylename 的名称来访问图像处理:
1http://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;...。
| 响应头域 | 说明 |
|---|---|
| Content-Type | 处理结果图片的格式。 |
| Content-Length | 处理结果图片的大小,单位为 Byte。 |
| Content-MD5 | 处理结果图片内容的 MD5 值。 |
| x-bce-image-info | 处理结果图片的非标准图片信息,例如宽度和高度。格式为 key1=value;key2=value2;...。 |
响应参数
| 参数名 | 类型 | 位置 | 说明 |
|---|---|---|---|
| format | String | Header:Content-Type | 处理结果图片格式,例如 jpeg、webp。 |
| size | Integer | Header:Content-Length | 处理结果图片大小,单位为 Byte。 |
| md5 | String | Header:Content-MD5 | 处理结果图片内容的 MD5 值。 |
| width | Integer | Header:x-bce-image-info | 处理结果图片宽度,单位为像素。 |
| height | Integer | Header:x-bce-image-info | 处理结果图片高度,单位为像素。 |
响应示例
图片处理成功后,响应 Header 示例参考如下:
1HTTP/1.1 200 OK
2Content-Type: image/jpeg
3Content-Length: 386
4Content-MD5: N8KTCbWXRgRwbzaSXoBKLw==
5x-bce-image-info: width=150;height=100
返回内容解析如下:
| 信息 | 响应头 | 示例值 |
|---|---|---|
| format | Content-Type: image/jpeg |
jpeg |
| size | Content-Length: 386 |
386 |
| md5 | Content-MD5: N8KTCbWXRgRwbzaSXoBKLw== |
N8KTCbWXRgRwbzaSXoBKLw== |
| width | x-bce-image-info: width=150;height=100 |
150 |
| height | x-bce-image-info: width=150;height=100 |
100 |
评价此篇文章
