浅谈腾讯云万象优图1
1. 体验与说明
1.1 开发准备
开发者使用OCR功能之前,需要先注册腾讯云账号,并创建图片空间,添加密钥,具体操作步骤如下:
1) 前往腾讯云•万象优图控制台注册账号;如果已经注册账号,请跳过此步骤;
2) 在腾讯云•万象优图控制台创建一个图片空间,获取空间名称(bucket)和项目ID;如果已创建过图片空间,请跳过此步骤;
3) 在腾讯云•万象优图控制台项目设置中添加密钥,获取SecretID和SecretKey;如果已经添加过密钥,请跳过此步骤。
2. 接入层对外协议
2.1 接口和方法
接口:http://service.image.myqcloud.com/v1/detection/imagetag_detect
方法: POST
2.2 请求格式
请求包的http header
参数 | 是否必选 | 描述 |
---|---|---|
Host | 是 | 访问域名,service.image.myqcloud.com |
Authorization | 是 | 鉴权签名,见下节 |
Content-Type | 是 | 标准的application/json |
Content-Length | 是 | http body总长度 |
请求包body采用json格式,body具体内容见下表:
参数 | 是否必选 | 类型 | 描述 |
---|---|---|---|
appid | 是 | uint | 业务id |
bucket | 是 | string | 图片空间 |
image | 否 | string | 需要检测的图像base64编码,图像需要是JPG/PNG/BMP 其中之一的格式 |
url | 否 | string | 图片可以下载的url, 如果url 和image 都提供, 仅使用url |
注意:image和url必须填写一个
2.3 响应包格式
返回的结果为:
参数 | 类型 | 描述 |
---|---|---|
code | int | 服务器错误码, 0为成功 |
message | string | 服务器返回的信息 |
tags | ImageTag | 图像的分类标签ImageTag列表 |
其中ImageTag 具体内容为:
参数 | 类型 | 描述 |
---|---|---|
tag_name | string | 返回图像标签的名字 |
tag_confidence | int | 图像标签的置信度,整形范围 0-100,越大置信度越高 |
示例:
{ "code": 0, "message": "success", "tags": [ { "tag_name": "天空", "tag_confidence": 27 }, { "tag_name": "女孩", "tag_confidence": 47 } ] }
3. 鉴权
腾讯云•万象优图通过签名来验证请求的合法性。
签名算法:
1) 拼接签名原文P
a=[appid]&b=[bucket]&k=[SecretID]&t=[currenTime]&e=[expiredTime]&l=[urllink]
注意:如果开发者使用的是V1版本,a字段为appid,b字段的值置空
字段 | 解释 |
---|---|
a | 开发者的项目ID,接入万象优图创建空间时系统生成的唯一标示项目的项目ID |
b | 图片空间名称 |
k | 项目的Secret ID |
t | 当前时间,UNIX时间戳 |
e | UNIX时间戳 |
l | 图片url(如果没有置空) |
2) 使用 HMAC-SHA1 算法对签名原文进行加密获得加密串C;
3) 对(C + P)进行base64编码,获得最终签名串