功能概述
腾讯云数据万象通过 imageMogr2接口提供为图片添加 AIGC 元数据标识的能力。该功能支持以下处理方式:
上传时处理
云上数据处理
授权说明
上传时处理:授权策略中 action 设置为
cos:PutObject
。云上数据处理:授权策略中 action 设置为
cos:PutObject
。注意:
PutObject 对应的 resource 为转存的文件。
服务开通
首次使用该功能时将默认为您开通数据万象,同时该存储桶将自动绑定数据万象,即可直接使用。
注意:
数据万象绑定后,如果您手动对存储桶进行数据万象的解绑操作,将无法继续使用该功能。
使用限制
图片格式限制:JPG/JPEG、PNG、AVIF。
更多使用限制,详情请参见 使用限制。
说明:
当前功能在灰度中,已支持成都、重庆、上海、广州地域,其他地域陆续开放中。
费用说明
接口示例
方式一:上传时处理
图片上传的请求包与 COS V5上传文件接口一致,只在请求包头部增加图片处理参数。
PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "imageMogr2/AIGCMetadata/Label/<Label>/ContentProducer/<ContentProducer>/ProduceID/<ProduceID>/ReservedCode1/<ReservedCode1>/ContentPropagator/<ContentPropagator>/PropagateID/<PropagateID>/ReservedCode2/<ReservedCode2>"}]}
方式二:云上数据处理
POST /<ObjectKey>?image_process HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-length: SizeAuthorization: Auth StringPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "imageMogr2/AIGCMetadata/Label/<Label>/ContentProducer/<ContentProducer>/ProduceID/<ProduceID>/ReservedCode1/<ReservedCode1>/ContentPropagator/<ContentPropagator>/PropagateID/<PropagateID>/ReservedCode2/<ReservedCode2>"}]}
说明:
<ObjectKey>:对象文件名,例如 folder/sample.jpg。
Authorization: 携带鉴权信息,用于验证请求的合法性的请求头,Pic-Operations 头部需签入签名信息中,详情请参见 请求签名 文档。
处理参数说明
AIGC 打标参数通过请求头中的 Pic-Operations 字段进行使用,Pic-Operations 请求头的值为 json 格式的字符串,具体参数如下:
参数名称 | 描述 | 类型 | 是否必选 |
is_pic_info | 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0。 | Int | 否 |
rules | 处理规则,一条规则对应一个处理结果(最多支持五条规则)。 | Array | 是 |
rules 中每一项具体参数如下:
参数名称 | 描述 | 类型 | 是否必选 |
bucket | 存储图片的存储桶名称。 | String | 是 |
fileid | 处理后文件的保存路径及名称。 当 fileid 与 ObjectKey 相同时,处理后的文件将覆盖原文件存储;不相同时将分别存储原文件和处理后文件。名称规则说明: 名称需要经过 URLEncode。 以 / 开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2文件夹中存储了一个文件名为 test2.jpg 的文件。不以 / 开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在 ObjectKey 所在的文件夹中新建了一个 p2文件夹,然后在 p2文件夹中存储了一个文件名为 test2.jpg 的文件。注意:请不要以 / 结尾,否则会产生空文件名。 | String | 是 |
rule | 具体的AIGC元数据标识的参数内容,格式为: imageMogr2/AIGCMetadata/Label/<Label>/ContentProducer/<ContentProducer>/ProduceID/<ProduceID>/ReservedCode1/<ReservedCode1>/ContentPropagator/<ContentPropagator>/PropagateID/<PropagateID>/ReservedCode2/<ReservedCode2> | String | 是 |
rule 中 AIGC 打标参数的具体说明(不同参数间通过反斜杠/分隔):
参数 | 含义 | 类型 | 是否必选 |
imageMogr2/AIGCMetadata | AIGC 打标固定字段,必填。 | String | 是 |
/Label/<Label> | String | 是 | |
/ContentProducer/<ContentProducer> | String | 是 | |
/ProduceID/<ProduceID> | String | 是 | |
/ReservedCode1/<ReservedCode1> | String | 否 | |
/ContentPropagator/<ContentPropagator> | String | 否 | |
/PropagateID/<PropagateID> | String | 否 | |
/ReservedCode2/<ReservedCode2> | String | 否 |
返回内容
<UploadResult><OriginalInfo><Key>exampleobject</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject.jpg</Location><ETag>"580cd6930*******fc2d5484"</ETag><ImageInfo><Md5>80cd6930*******fc2d5</Md5><Format>JPEG</Format><Width>640</Width><Height>427</Height><Quality>100</Quality><Ave>0xa18454</Ave><Orientation>1</Orientation><FrameCount>1</FrameCount><BitDepth>8</BitDepth><VerticalDpi>0</VerticalDpi><HorizontalDpi>0</HorizontalDpi></ImageInfo></OriginalInfo><ProcessResults><Object><Key>test.png</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/test.png</Location><Format>png</Format><Md5>6930*******fc2</Md5><Width>640</Width><Height>427</Height><Size>463092</Size><Quality>100</Quality><ETag>"eaa4e3d8f*******61f23e3f0c"</ETag><FrameCount>1</FrameCount><BitDepth>8</BitDepth><VerticalDpi>0</VerticalDpi><HorizontalDpi>0</HorizontalDpi><AIGCMetadata><Label>1</Label><ContentProducer>0012AF****</ContentProducer><ProduceID>test-1</ProduceID><ReservedCode1>***</ReservedCode1><ContentPropagator>0012AF****</ContentPropagator><PropagateID>test-1</PropagateID><ReservedCode2>***</ReservedCode2></AIGCMetadata></Object></ProcessResults></UploadResult>
响应包体具体数据内容如下:
参数名称 | 类型 | 描述 |
UploadResult | Container | 处理结果信息 |
UploadResult 节点内容:
参数名称 | 类型 | 描述 |
OriginalInfo | Container | 原图信息 |
ProcessResults | Container | 处理图信息 |
OriginalInfo 节点内容:
节点名称 | 类型 | 描述 |
Key | String | 原图文件名 |
Location | String | 原图路径 |
ImageInfo | Container | 原图图片信息 |
ETag | String | 原图 ETag 信息(若处理结果图覆盖原图则为结果图 ETag 信息) |
ImageInfo 节点内容:
节点名称 | 类型 | 描述 |
Md5 | String | 校验值,Md5用于文件完整性校验、避免重复上传和标识文件的唯一性 |
Format | String | 图片格式 |
Width | Int | 图片宽度 |
Height | Int | 图片高度 |
Quality | Int | 图片质量 |
Ave | String | 图片主色调,格式为:0xRRGGBB (RR、GG、BB都是十六进制数,表示红、绿、蓝三种颜色) |
Orientation | Int | 图片的EXIF旋转角度 |
FrameCount | Int | 图片的帧数。静态图为1,动图为对应的帧数. |
BitDepth | Int | 图像每个颜色通道所使用的比特数,反映图像的色彩精度 |
VerticalDpi | Int | 图像垂直方向的分辨率 |
HorizontalDpi | Int | 图像水平方向的分辨率 |
ProcessResults 节点内容:
节点名称 | 类型 | 描述 |
Object | Container | 每一个图片处理结果 |
Object 节点内容:
节点名称 | 类型 | 描述 |
Key | String | 文件名 |
Location | String | 图片路径 |
Format | String | 图片格式 |
Md5 | String | 校验值,Md5用于文件完整性校验、避免重复上传和标识文件的唯一性 |
Width | Int | 图片宽度 |
Height | Int | 图片高度 |
Size | Int | 图片大小 |
Quality | Int | 图片质量 |
FrameCount | Int | 图片的帧数。静态图为1,动图为对应的帧数。 |
BitDepth | String | 图像每个颜色通道所使用的比特数,反映图像的色彩精度。 |
VerticalDpi | Int | 图像垂直方向的分辨率。 |
HorizontalDpi | Int | 图像水平方向的分辨率。 |
ETag | Int | 处理结果图 ETag 信息。 |
AIGCMetadata | Container | 已打上的 AIGC 元数据标识内容。 |
实际案例
上传一张 AI 生成的图片到存储桶 examplebucket-1250000000中,同时进行元数据打标和转换图片格式为 webp
请求
PUT /filename.jpg HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Wed, 28 Oct 2025 20:32:00 GMTAuthorization:q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=****************************************Pic-Operations:{"rules":[{"bucket":"examplebucket-1250000000","fileid":"test.webp","rule":"imageMogr2/format/webp/AIGCMetadata/Label/MQ/ContentProducer/MDAxMioqKg/ProduceID/dGVzdA/ReservedCode1/MTIz/ContentPropagator/MDAxMioqKg/PropagateID/dGVzdA/ReservedCode2/MTIz"}]}Content-Length: 64[Object]
响应
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Wed, 28 Oct 2025 20:32:00 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>PNG</Format><Width>640</Width><Height>427</Height><Quality>100</Quality><Ave>0xa18454</Ave><Orientation>1</Orientation><FrameCount>1</FrameCount><BitDepth>8</BitDepth><VerticalDpi>0</VerticalDpi><HorizontalDpi>0</HorizontalDpi></ImageInfo></OriginalInfo><ProcessResults><Object><Key>test.png</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/test.webp</Location><Format>png</Format><Width>640</Width><Height>427</Height><Size>463092</Size><Quality>100</Quality><ETag>"eaa4e3d8fd498bbc63be3b71c46b9c61f23e3f0c"</ETag><FrameCount>1</FrameCount><BitDepth>8</BitDepth><VerticalDpi>0</VerticalDpi><HorizontalDpi>0</HorizontalDpi><AIGCMetadata><Label>1</Label><ContentProducer>0012***</ContentProducer><ProduceID>test</ProduceID><ReservedCode1>MTIz</ReservedCode1><ContentPropagator>0012***</ContentPropagator><PropagateID>test</PropagateID><ReservedCode2>MTIz</ReservedCode2></AIGCMetadata></Object></ProcessResults></UploadResult>