简介
对象存储提供了一套便捷的图片处理机制,通过这套机制可以对存储桶中的图片进行一系列的图片处理操作。图片处理机制分为以下三种方式:
方式 | 类别 | 说明 |
下载时处理 | 同步处理 | 在图片的 URL 后加上 图片处理参数。 |
上传时处理 | 持久化处理 | 上传图片时,在请求包头部中加入 Pic-Operations 项并设置好相应的 图片处理参数。 |
云上数据处理 | 持久化处理 | 针对 COS 上已经存在的图片进行处理,处理方式与上传时处理类似,在请求包头部中加入 Pic-Operations 项并设置好相应的图片处理参数。 |
下载时处理
您可以通过在图片的 URL 后加上 图片处理参数,实现访问图片的时候同步获取到处理后的图片。
请求语法
GET /? HTTP/1.1Host: .cos..myqcloud.comDate: Authorization:
示例
请求
GET /filename.jpg?imageMogr2/format/png HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Wed, 28 Oct 2015 20:32:00 GMTAuthorization:XXXXXXXXXXXX
返回
HTTP/1.1 200 OKContent-Type: image/pngContent-Length: 565Date: Fri, 10 Apr 2020 09:35:16 GMTLast-Modified: Fri, 10 Apr 2020 09:35:05 GMTx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****
上传时处理
上传时处理功能可以帮助使用者在上传时实现图片处理。您只需要在请求包头部中加入 Pic-Operations 项并设置好相应的 图片处理参数,就可在图片上传时实现相应的图片处理,并可将原图和处理结果存入到 COS。目前支持32M以内的图片处理。
请求语法
图片上传的请求包与 COS V5 简单上传文件接口一致,只在请求包头部增加图片处理参数。
PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations: <PicOperations>
说明COS 简单上传文件接口,请参见 COS PUT Object 文档。Authorization: Auth String(详情请参见 请求签名 文档)。持久化处理的 QPS 限制为100,如您有更高需求请 联系我们。
请求内容
Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称 | 类型 | 是否必选 | 描述 |
is_pic_info | Int | 否 | 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0 |
rules | Array | 否 | 处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理 |
rules(json 数组)中每一项具体参数如下:
参数名称 | 类型 | 是否必选 | 描述 |
bucket | String | 否 | 存储结果的目标存储桶名称,格式为 BucketName-APPID,如果不指定的话默认保存到当前存储桶。 |
fileid | String | 是 | 处理后文件的保存路径及名称。当 fileid 与 ObjectKey 相同时,处理后的文件将覆盖原文件存储;不相同时将分别存储原文件和处理后文件。名称规则说明:1. 名称需要经过URLEncode。2. 以 / 开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。3. 不以 / 开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。4. 注意:请不要以 / 结尾,否则会产生空文件名。 |
rule | String | 是 | 图片处理参数,若按指定样式处理,则以 style/ 开头,后加样式名,如样式名为 test ,则 rule 字段为 style/test 。 |
返回内容
响应包体具体数据内容如下:
参数名称 | 类型 | 描述 |
UploadResult | Container | 原图信息 |
UploadResult 节点内容:
参数名称 | 类型 | 描述 |
OriginalInfo | Container | 原图信息 |
ProcessResults | Container | 图片处理结果 |
OriginalInfo 节点内容:
节点名称 | 类型 | 描述 |
Key | String | 原图文件名 |
Location | String | 图片路径 |
ImageInfo | Container | 原图图片信息 |
ETag | String | 原图 ETag 信息(若处理结果图覆盖原图则为结果图 ETag 信息) |
ImageInfo 节点内容:
节点名称 | 类型 | 描述 |
Format | String | 格式 |
Width | Int | 图片宽度 |
Height | Int | 图片高度 |
Quality | Int | 图片质量 |
Ave | String | 图片主色调,格式为:0xRRGGBB (RR、GG、BB都是十六进制数,表示红、绿、蓝三种颜色) |
Orientation | Int | 图片旋转角度,取值为1-8的整数:1:旋转0°2:水平翻转3:旋转180°4:垂直翻转5:顺时针旋转90°+水平翻转6:顺时针旋转90°7:顺时针旋转90°+垂直翻转8:逆时针旋转90° |
FrameCount | Int | 图片的帧数。静态图为1,动图为对应的帧数。 |
ProcessResults 节点内容:
节点名称 | 类型 | 描述 |
Object | Container | 每一个图片处理结果 |
Object 节点内容:
节点名称 | 类型 | 描述 |
Key | String | 文件名 |
Location | String | 图片路径 |
Format | String | 图片格式 |
Width | Int | 图片宽度 |
Height | Int | 图片高度 |
Size | Int | 图片大小 |
Quality | Int | 图片质量 |
ETag | String | 处理结果图 ETag 信息 |
FrameCount | Int | 图片的帧数。静态图为1,动图为对应的帧数 |
示例
请求
PUT /filename.jpg HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Wed, 28 Oct 2015 20:32:00 GMTAuthorization:XXXXXXXXXXXXPic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test.png","rule":"imageMogr2/format/png"}]}Content-Length: 64
[Object]
返回
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 03 Apr 2018 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****
<UploadResult> <OriginalInfo> <Key>filename.jpg</Key> <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/filename.jpg</Location> <ETag>"580cd6930444576523c25f86ce2af9b1fc2d5484"</ETag> <ImageInfo> <Format>JPEG</Format> <Width>640</Width> <Height>427</Height> <Quality>100</Quality> <Ave>0xa18454</Ave> <Orientation>1</Orientation> <FrameCount>1</FrameCount> </ImageInfo> </OriginalInfo> <ProcessResults> <Object> <Key>test.png</Key> <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/test.png</Location> <Format>png</Format> <Width>640</Width> <Height>427</Height> <Size>463092</Size> <Quality>100</Quality> <ETag>"eaa4e3d8fd498bbc63be3b71c46b9c61f23e3f0c"</ETag> <FrameCount>1</FrameCount> </Object> </ProcessResults></UploadResult>
注意上传时处理支持 COS V5 的分块上传功能,您在使用 COS V5 的 Complete Multipart Upload 接口时只需在请求包头部中加入 Pic-Operations 项,即可实现图片处理。
POST /<ObjectKey>?uploadId=UploadId HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-length: SizeAuthorization: Auth StringPic-Operations: <PicOperations>
说明COS 接口请参见 COS Complete Multipart Upload 文档。
云上数据处理
对象存储的图片处理 API 能够对已存储在 COS 的图片进行相应处理操作,并将结果存入到 COS。
请求语法
POST /<ObjectKey>?image_process HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-length: SizeAuthorization: Auth StringPic-Operations: <PicOperations>
请求内容
Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称 | 类型 | 是否必选 | 描述 |
is_pic_info | Int | 否 | 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0 |
rules | Array | 否 | 处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理 |
rules(json 数组)中每一项具体参数如下:
参数名称 | 类型 | 是否必选 | 描述 |
bucket | String | 否 | 存储结果的目标 bucket 名称,形如 BucketName-APPID,如果不指定的话默认保存到当前存储桶 |
fileid | String | 是 | 处理后文件的保存路径及名称。当 fileid 与 ObjectKey 相同时,处理后的文件将覆盖原文件存储;不相同时将分别存储原文件和处理后文件。名称规则说明:1. 名称需要经过URLEncode2. 以 / 开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。3. 不以 / 开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1 文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。4. 注意:请不要以 / 结尾,否则会产生空文件名。 |
rule | String | 是 | 处理参数,参见对象存储图片处理 API。若按指定样式处理,则以 style/ 开头,后加样式名,如样式名为 test ,则 rule 字段为 style/test 。 |
返回内容
响应包体具体数据内容如下:
参数名称 | 类型 | 描述 |
UploadResult | Container | 原图信息 |
UploadResult 节点内容:
参数名称 | 类型 | 描述 |
OriginalInfo | Container | 原图信息 |
ProcessResults | Container | 图片处理结果 |
OriginalInfo 节点内容:
节点名称 | 类型 | 描述 |
Key | String | 原图文件名 |
Location | String | 图片路径 |
ImageInfo | Container | 原图图片信息 |
ETag | String | 原图 ETag 信息(若处理结果图覆盖原图则为结果图 ETag 信息) |
ImageInfo 节点内容:
节点名称 | 类型 | 描述 |
Format | String | 图片格式 |
Width | Int | 图片宽度 |
Height | Int | 图片高度 |
Quality | Int | 图片质量 |
Ave | String | 图片主色调,格式为:0xRRGGBB (RR、GG、BB都是十六进制数,表示红、绿、蓝三种颜色) |
Orientation | Int | 图片旋转角度,取值为1-8的整数:1:旋转0°2:水平翻转3:旋转180°4:垂直翻转5:顺时针旋转90°+水平翻转6:顺时针旋转90°7:顺时针旋转90°+垂直翻转8:逆时针旋转90° |
FrameCount | Int | 图片的帧数。静态图为1,动图为对应的帧数。 |
ProcessResults 节点内容:
节点名称 | 类型 | 描述 |
Object | Container | 每一个图片处理结果 |
Object 节点内容:
节点名称 | 类型 | 描述 |
Key | String | 文件名 |
Location | String | 图片路径 |
Format | String | 图片格式 |
Width | Int | 图片宽度 |
Height | Int | 图片高度 |
Size | Int | 图片大小 |
Quality | Int | 图片质量 |
ETag | String | 处理结果图 ETag 信息 |
FrameCount | Int | 图片的帧数。静态图为1,动图为对应的帧数。 |
示例
请求
POST /filename.jpg?image_process HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Wed,18 Jan 2017 16:17:03 GMTAuthorization: XXXXXXXXXXPic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test.png","rule":"imageMogr2/format/png"}]}Content-Length: XX
返回
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 03 Apr 2018 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****
<UploadResult> <OriginalInfo> <Key>filename.jpg</Key> <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/filename.jpg</Location> <ETag>"eaa4e3d8fd498bbc63be3b71c46b9c61f23e3f0c"</ETag> <ImageInfo> <Format>JPEG</Format> <Width>640</Width> <Height>427</Height> <Quality>100</Quality> <Ave>0xa18454</Ave> <Orientation>1</Orientation> <FrameCount>1</FrameCount> </ImageInfo> </OriginalInfo> <ProcessResults> <Object> <Key>test.png</Key> <Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/test.png</Location> <Format>png</Format> <Width>640</Width> <Height>427</Height> <Size>463092</Size> <Quality>100</Quality> <ETag>"eaa4e3d8fd498bbc63be3b71c46b9c61f23e3f0c"</ETag> <FrameCount>1</FrameCount> </Object> </ProcessResults></UploadResult>
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
转转请注明出处:https://www.yunxiaoer.com/145032.html