功能概述
图片上传时识别二维码的请求包与对象存储(Cloud Object Storage,COS)简单上传文件接口一致,只需在请求包头部增加图片处理参数 Pic-Operations,并将请求 Host 更改为数据万象域名即可。
请求语法
PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations: <PicOperations>
请求内容
Pic-Operations 为 json 格式的字符串,具体参数如下:
参数名称  | 类型  | 是否必选  | 描述  | 
is_pic_info  | Int  | 否  | 是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0  | 
rules  | Array  | 否  | 处理规则,一条规则对应一个处理结果(目前最多支持五条规则),不填则不进行图片处理  | 
rules(json 数组)中每一项具体参数如下:
参数名称  | 类型  | 是否必选  | 描述  | 
bucket  | String  | 否  | 存储结果的目标存储桶,格式为 BucketName-APPID,如果不指定的话默认保存到当前存储桶  | 
fileid  | String  | 否  | 处理结果的文件路径名称,例如以 /开头,则存入指定文件夹中,否则存入与原图文件相同的目录位置 | 
rule  | String  | 是  | 处理参数,参见数据万象图片处理 API。若按指定样式处理,则以 style/开头,后加样式名,例如样式名为test,则 rule 字段为style/test | 
使用二维码识别功能需在 rule 中添加二维码识别参数(QRcode),相关内容如下:
QRcode/cover/<mode>
参数  | 类型  | 是否必选  | 描述  | 
cover  | Int  | 否  | 二维码覆盖功能。   可为0或1。 0表示不开启二维码覆盖 1表示开启二维码覆盖 功能开启后,将对识别出的二维码覆盖上马赛克,默认值0  | 
返回内容
响应包体具体数据内容如下: 
参数名称  | 类型  | 描述  | 
UploadResult  | Container  | 原图信息  | 
UploadResult 节点内容: 
参数名称  | 类型  | 描述  | 
OriginalInfo  | Container  | 原图信息  | 
ProcessResults  | Container  | 图片处理结果  | 
OriginalInfo 节点内容: 
节点名称  | 类型  | 描述  | 
Key  | String  | 原图文件名  | 
Location  | String  | 图片路径  | 
ImageInfo  | Container  | 原图图片信息  | 
ImageInfo 节点内容: 
节点名称  | 类型  | 描述  | 
Format  | String  | 格式  | 
Width  | Int  | 图片宽度  | 
Height  | Int  | 图片高度  | 
Quality  | Int  | 图片质量  | 
Ave  | String  | 图片主色调  | 
Orientation  | Int  | 图片旋转角度  | 
ProcessResults 节点内容: 
节点名称  | 类型  | 描述  | 
Object  | Container  | 每一个图片处理结果  | 
Object 节点内容: 
节点名称  | 类型  | 描述  | 
Key  | String  | 文件名  | 
Location  | String  | 图片路径  | 
Format  | String  | 图片格式  | 
Width  | Int  | 图片宽度  | 
Height  | Int  | 图片高度  | 
Size  | Int  | 图片大小  | 
Quality  | Int  | 图片质量  | 
codeStatus  | int  | 二维码识别结果。0表示未识别到二维码,1表示识别到二维码  | 
QRcodeInfo  | container  | 二维码识别结果,可能有多个  | 
QRcodeInfo 节点内容: 
节点名称  | 类型  | 描述  | 
codeUrl  | string  | 二维码的内容。可能识别不出  | 
codelocation  | container  | 图中识别到的二维码位置坐标  | 
codelocation 节点内容:
节点名称  | 类型  | 描述  | 
point  | int  | 二维码坐标点  | 
示例
请求
PUT /picture.jpg HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Tue, 03 Apr 2018 09:06:15 GMTAuthorization:XXXXXXXXXXXXPic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test.jpg","rule":" QRcode/cover/1"}]}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>test.jpg</Key><Location>xxxxxx-xxxxxxx.cos.ap-shanghai.myqcloud.com/test.jpg</Location></OriginalInfo><ProcessResults><Object><Format>JPEG</Format><Width>1024</Width><Height>768</Height><Size>79866</Size><Quality>79</Quality><CodeStatus>1</CodeStatus><QRcodeInfo><CodeUrl>xxxxxxxxxxxxxxxxxxxxxxxx</CodeUrl><CodeLocation><Point>450,340</Point><Point>450,219</Point><Point>572,219</Point><Point>571,340</Point></CodeLocation></QRcodeInfo><QRcodeInfo><CodeUrl>xxxxxxxxxxxxxxxxxxxxxxxx</CodeUrl><CodeLocation><Point>773,340</Point><Point>772,219</Point><Point>894,219</Point><Point>894,340</Point></CodeLocation></QRcodeInfo><QRcodeInfo><CodeUrl>xxxxxxxxxxxxxxxxxxxxxxxx</CodeUrl><CodeLocation><Point>128,340</Point><Point>127,219</Point><Point>249,219</Point><Point>249,340</Point></CodeLocation></QRcodeInfo></Object></ProcessResults></UploadResult>