功能描述
腾讯云数据万象通过 AIEnhanceImage 接口对图像进行增强处理。
注意:
授权说明
通过子账号使用时,需要在 授权策略 的 action 中添加对应的权限。对象存储支持的所有操作接口请参见 COS action,数据万象支持的所有操作接口请参见 CI action。通过不同方式使用此功能时,授权策略如下:
下载时处理:授权策略中 action 设置为
cos:GetObject
、ci:CreateAIEnhanceImageJob
。上传时处理:授权策略中 action 设置为
cos:PutObject
。云上数据处理:授权策略中 action 设置为
cos:GetObject
、cos:PutObject
。说明:
GetObject 对应的 resource 为源文件,PutObject 对应的 resource 为转存的文件。
服务开通
注意:
数据万象绑定后,如果您手动对存储桶进行数据万象的解绑操作,将无法继续使用该功能。
使用限制
费用说明
处理方式一:下载时处理
请求
请求示例
原图存储在 COS。
GET /<ObjectKey>?ci-process=AIEnhanceImage&denoise=<denoise>&sharpen=<sharpen> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>
原图来自其他链接。
GET /?ci-process=AIEnhanceImage&denoise=<denoise>&sharpen=<sharpen>&detect-url=<detect-url> HTTP/1.1Host: <BucketName-APPID>.pic.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>
请求头
请求体
该请求的请求体为空
请求参数说明
参数 | 含义 | 类型 | 是否必选 |
ObjectKey | 对象文件名,例如:folder/document.jpg。 | String | 否 |
ci-process | 数据万象处理能力,图像增强固定为 AIEnhanceImage。 | String | 是 |
denoise | 去噪强度值,取值范围为0 - 5之间的整数,值为0时不进行去噪操作,默认值为3。 | Integer | 否 |
sharpen | 锐化强度值,取值范围为0 - 5之间的整数,值为0时不进行锐化操作,默认值为3。 | Integer | 否 |
detect-url | 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey ,detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为 http%3A%2F%2Fwww.example.com%2Fabc.jpg。 | String | 否 |
ignore-error | 当此参数为1时,针对文件过大等导致处理失败的场景,会直接返回原图而不报错。 | Integer | 否 |
响应
响应头
响应体
此接口的响应体为处理后图片。
处理方式二:上传时处理
请求
请求示例
PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "ci-process=AIEnhanceImage"}]}[body]
请求头
公有请求头
特有请求头
除公共头部外,还需要传入如下头部:
头部名称 | 描述 | 类型 |
Pic-Operations | 对图片进行操作的参数 | String |
Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称 | 描述 | 类型 | 是否必选 |
is_pic_info | 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0 | Int | 否 |
rules | 处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理 | Array | 否 |
rules(json 数组)中每一项具体参数如下:
参数名称 | 描述 | 类型 | 是否必选 |
fileid | 处理后文件的保存路径及名称。名称规则说明: 例如源文件的路径及文件名为:/p1/test1.jpg 以/开头为绝对路径,例如 fileid 值为/p2/test2.jpg 时,表示在 p2文件夹中存储了一个文件名为 test2.jpg 的文件 不以/开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1文件夹中新建了一个 p2文件夹,然后在 p2文件夹中存储了一个文件名为 test2.jpg 的文件 注意:请不要以 / 结尾,否则会产生空文件名如希望修复后的图片覆盖原图,请将 fileid 字段设置为<ObjectKey> | String | 是 |
rule | 处理参数,固定值为 ci-process=AIEnhanceImage | String | 是 |
请求体
该请求的请求体为待处理的本地文件。
响应
响应头
响应体
该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
<UploadResult><OriginalInfo><Key>ObjectKey</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/filename.jpg</Location><ETag>"ed60e3598e6862d8c8443a06acfb2153"</ETag></OriginalInfo><ProcessResults><Object><Key>exampleobject</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</Location><Size>354256</Size><ETag>"521451f63c331becf533e466732c1091"</ETag></Object></ProcessResults></UploadResult>
具体的数据内容如下:
节点名称(关键字) | 父节点 | 描述 | 类型 |
UploadResult | 无 | 请求结果 | Container |
UploadResult 节点的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
OriginalInfo | UploadResult | 原图信息 | Container |
ProcessResults | UploadResult | 请求处理结果 | Container |
OriginalInfo 节点的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Key | UploadResult.OriginalInfo | 原图文件名 | String |
Location | UploadResult.OriginalInfo | 原图路径 | String |
ETag | UploadResult.OriginalInfo | 原图 ETag 值 | String |
ProcessResults 节点的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Object | UploadResult.ProcessResults | 每个图片的处理结果 | Container |
Object 节点的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Key | UploadResult.ProcessResults.Object | 增强后图片文件名 | String |
Location | UploadResult.ProcessResults.Object | 增强后的图片链接 | String |
ETag | UploadResult.ProcessResults.Object | 增强后图片的 ETag 值 | String |
Size | UploadResult.ProcessResults.Object | 增强后图片大小 | Int |
处理方式三:云上数据处理
请求
请求示例
POST /<ObjectKey>?image_process HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-length: SizeAuthorization: Auth StringPic-Operations:{"rules": [{"fileid": "exampleobject","rule": "ci-process=AIEnhanceImage"}]}
请求头
公有请求头
特有请求头
除公共头部外,还需要传入如下头部:
头部名称 | 描述 | 类型 |
Pic-Operations | 对图片进行操作的参数 | String |
Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称 | 描述 | 类型 | 是否必选 |
is_pic_info | 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0 | Int | 否 |
rules | 处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理 | Array | 否 |
rules(json 数组)中每一项具体参数如下:
参数名称 | 描述 | 类型 | 是否必选 |
fileid | 处理后文件的保存路径及名称。名称规则说明: 例如源文件的路径及文件名为:/p1/test1.jpg 以/开头为绝对路径,例如 fileid 值为/p2/test2.jpg 时,表示在 p2文件夹中存储了一个文件名为 test2.jpg 的文件 不以/开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 p1文件夹中新建了一个 p2文件夹,然后在 p2文件夹中存储了一个文件名为 test2.jpg 的文件 注意:请不要以 / 结尾,否则会产生空文件名如希望修复后的图片覆盖原图,请将 fileid 字段设置为<ObjectKey> | String | 是 |
rule | 处理参数,固定值为 ci-process=AIEnhanceImage | String | 是 |
请求体
该请求的请求体为空
响应
响应头
响应体
该响应体返回为 application/xml 数据,包含完整节点数据的
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 23 Apr 2022 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****<UploadResult><OriginalInfo><Key>ObjectKey</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/filename.jpg</Location><ETag>"ed60e3598e6862d8c8443a06acfb2153"</ETag></OriginalInfo><ProcessResults><Object><Key>exampleobject</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</Location><Size>354256</Size><ETag>"521451f63c331becf533e466732c1091"</ETag></Object></ProcessResults></UploadResult>
具体的数据内容如下:
节点名称(关键字) | 父节点 | 描述 | 类型 |
UploadResult | 无 | 请求结果 | Container |
UploadResult 节点的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
OriginalInfo | UploadResult | 原图信息 | Container |
ProcessResults | UploadResult | 请求处理结果 | Container |
OriginalInfo 节点的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Key | UploadResult.OriginalInfo | 原图文件名 | String |
Location | UploadResult.OriginalInfo | 原图路径 | String |
ETag | UploadResult.OriginalInfo | 原图 ETag 值 | String |
ProcessResults 节点的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Object | UploadResult.ProcessResults | 每个图片的处理结果 | Container |
Object 节点的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
Key | UploadResult.ProcessResults.Object | 增强后图片文件名 | String |
Location | UploadResult.ProcessResults.Object | 增强后的图片链接 | String |
ETag | UploadResult.ProcessResults.Object | 增强后图片的 ETag 值 | String |
Size | UploadResult.ProcessResults.Object | 增强后图片大小 | Int |