七牛 OCR 接口调试 & 七牛鉴权 Token 应用
在参考七牛官方接口的基础上,提供 PHP/Java/Python/Go 语言的实现以及执行结果。此外:
- 代码基于各服务端语言的七牛 SDK
- 【重要】七牛其他使用鉴权 token的接口,和此接口调用方式类似。如内容审核的7个接口,人脸识别3个接口,以图搜图等。具体实现可以参考下文的【现学现卖】图片内容审核接口
- 下面的代码主要提供接入的参考思路,建议根据需要,调试成功后再修改集成到自己的代码中
接口规约
POST /v1/ocr/idcard Http/1.1
HOST: ai.qiniuapi.com
Content-Type:application/json
Authorization: Qiniu <AccessKey>:<Sign>
{
"data": {
"uri": "http://oayjpradp.bkt.clouddn.com/age_gender_test.png"
}
}
PHP 实现
核心代码
// 鉴权凭证
$url = "http://ai.qiniuapi.com/v1/ocr/idcard";
$method = "POST";
$host = "ai.qiniuapi.com";
$body = "{ \"data\": { \"uri\": \"http://test-pub.iamlj.com/test-idcard.jpg\" } }";
$contentType = "application/json";
$headers = $auth->authorizationV2($url, $method, $body, $contentType);
$headers['Content-Type'] = $contentType;
$headers['Host'] = $host;
$response = Client::post($url, $body, $headers);
执行结果

源代码
Java 实现
核心代码
String url = "http://ai.qiniuapi.com/v1/ocr/idcard";
String host = "ai.qiniuapi.com";
String body = "{ \"data\": { \"uri\": \"http://test-pub.iamlj.com/test-idcard.jpg\" } }";
String contentType = "application/json";
String method = "POST";
String qiniuToken = "Qiniu " + auth.signRequestV2(url, method, body.getBytes(), contentType);
System.out.println(url);
System.out.println(body);
System.out.println(qiniuToken);
StringMap header = new StringMap();
header.put("Host", host);
header.put("Authorization", qiniuToken);
header.put("Content-Type", contentType);
Configuration c = new Configuration(Zone.zone1());
Client client = new Client(c);
Response response = client.post(url, body.getBytes(), header, contentType);
执行结果

源代码
【现学现卖】图片内容审核接口
实现图片内容审核,参考 OCR demo 的代码文件,只需要修改请求 url 和 body,即可调用成功,具体如下:
接口规约
POST /v3/image/censor HTTP/1.1
Host: ai.qiniuapi.com
Content-Type: application/json
Authorization: Qiniu YnxrxOSvGotRZpqkZnMzl_euuoqRzOKUd6zwbRju:r6a-o2UpBg6A4puIMnkCExH8lE8=
核心代码
String url = "http://ai.qiniuapi.com/v3/image/censor";
String host = "ai.qiniuapi.com";
String body = "{ \"data\": { \"uri\": \"https://mars-assets.qnssl.com/resource/gogopher.jpg\" }, \"params\": { \"scenes\": [ \"pulp\", \"terror\", \"politician\" ] } }";
String contentType = "application/json";
String method = "POST";
String qiniuToken = "Qiniu " + auth.signRequestV2(url, method, body.getBytes(), contentType);
System.out.println(url);
System.out.println(body);
System.out.println(qiniuToken);
StringMap header = new StringMap();
header.put("Host", host);
header.put("Authorization", qiniuToken);
header.put("Content-Type", contentType);
Configuration c = new Configuration(Zone.zone1());
Client client = new Client(c);
Response response = client.post(url, body.getBytes(), header, contentType);
执行结果

代码
Python 实现
核心代码
url = 'http://ai.qiniuapi.com/v1/ocr/idcard'
data = {"data": {"uri": "http://test-pub.iamlj.com/test-idcard.jpg"}}
req = http._post_with_qiniu_mac(url, data, auth)
执行结果

源代码
Go 实现
核心代码
url := "http://ai.qiniuapi.com/v1/ocr/idcard"
method := "POST"
host := "ai.qiniuapi.com"
contentType := "application/json"
bodyUri := OcrIdcardData{Uri: "http://test-pub.iamlj.com/test-idcard.jpg"}
body := OcrIdcard{Data: &bodyUri}
reqData, _ := json.Marshal(body)
req, reqErr := http.NewRequest(method, url, bytes.NewReader(reqData))
if reqErr != nil {
return
}
req.Header.Add("Content-Type", contentType)
req.Header.Add("Host", host)
qiniuToken, signErr := mac.SignRequestV2(req)
if signErr != nil {
fmt.Printf(signErr.Error())
}
req.Header.Add("Authorization", "Qiniu "+qiniuToken)
fmt.Println(string(url))
fmt.Println(string(reqData))
fmt.Println(string("Qiniu " + qiniuToken))
resp, respErr := http.DefaultClient.Do(req)
if respErr != nil {
fmt.Printf(respErr.Error())
}
defer resp.Body.Close()
resData, ioErr := ioutil.ReadAll(resp.Body)
执行结果

源代码
参考文档
七牛 OCR 接口调试 & 七牛鉴权 Token 应用的更多相关文章
- 七牛刷新接口PHP实现
<?php require_once '../autoload.php'; use Qiniu\Auth; use Qiniu\Http\Client; $accessKey = 'access ...
- 使用微信 SDK 上传图片到七牛
总体思路是:在微信下选好图片后将图片上传到微信服务器,在后端使用微信服务器返回的图片 serverId 加上调用接口的 ApiTicket 通过七牛的 fetch 接口向微信服务器下载多媒体文件的接口 ...
- nodejs+phantomjs+七牛 实现截屏操作并上传七牛存储
近来研究了下phantomjs,只是初涉,还谈不上深入研究,首先介绍下什么是phantomjs. 官网上的介绍是:”PhantomJS is a headless WebKit scriptable ...
- 定时备份 MySQL 并上传到七牛
多数应用场景下,我们需要对重要数据进行备份.并放置到一个安全的地方,以备不时之需. 常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份).mysqldump 全量逻辑备份. ...
- 用WP Super Cache和七牛为你的WordPress网站加速
众所周知,WordPress一直都是博客建站的首选程序,而现在也有越来越多的企业网站都选择采用WordPress来搭建. WordPress虽好但其过于臃肿且响应速度慢等缺点也为站长们所诟病,目前网上 ...
- 七牛整合php上传从微信下载接口下载下来的文件
因为ios系统直接读取不了MP3格式的文件,所以从微信接口下载下来的MP3格式音频上传到七牛后要转码. Sample code: public function doMobileUploadT ...
- 前端js调用七牛制作评价页面案例
一.需求 公司所有的上传页面都用七牛,前端不免要直接调用七牛的代码进行上传,以下是一个实现七牛上传的案例,制作一个常见的商品评价页面,页面需求很常见当上传到第五章图片的时候,上传按钮消失,上传需要显示 ...
- 百度文本编辑器 Ueditor for net 使用七牛存储附件的实现
百度编辑器功能强大,确实好用,可惜附件使用本地存储,如果网站的用户量巨大,则会使得网站目录变得非常庞大,而且文件不易于管理,七牛云存储在附件存储方面下了不少功夫,用起来感觉不错,要是将ueditor ...
- flask开发restful api系列(4)--七牛图片服务
上一章我们讲到如何利用alembic来更新数据库,这章,我们讲如何通过七牛服务来存储图片. 像我们大多数公司一样,公司资金比较少,如果自己开发图片服务器,代价太大:如果我们用自己的网站服务器来保存图片 ...
随机推荐
- [Ramda] Lens in Depth
In this post, we are going to see how to use Ramda Lens. For example, we have data: const {log} = re ...
- ChartControl控件0和null的效果
DevExpress的ChartControl虽然还不能完全代替Office图表(例如它暂时不支持添加数据表),但它算同类产品中相当优秀的了,下面是对0值和空值的处理. DataTable zeroD ...
- POSIX 线程的创建与退出
前言 创建线程: pthread_create() 退出线程: pthread_exit()return pthread_cancel() 线程的创建 使用多线程,首先就需要创建一个新线程.那么线程是 ...
- fgrep: ifcfg-ifcfg-eth0: No such file or directory
[root@localhost ~]# service network restartfgrep: ifcfg-ifcfg-eth0: No such file or directoryfgrep: ...
- Django-jet自定义菜单
Django-jet自定义菜单:并且可设置权限.https://jet.readthedocs.io/en/latest/config_file.html#custom-menu
- 安装最新版RabbitMQ v3.7.13 以及基本配置
之前用的老版本,新项目新气象,RabbitMQ也用最新版吧 首先打开官网:http://www.rabbitmq.com/install-rpm.html 先到右侧导航栏来看一下 : 第一个红框是指的 ...
- php项目踩到的empty函数的一个坑
报错信息: PHP Fatal error: Can't use function return value in write context in /目录省略.../XXService.php on ...
- MyBatis 配置多数据源
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- [转]SpringMVC+ Mybatis 配置多数据源 + 手动切换数据源
正确可行的解决方法:使用Spring提供的AbstractRoutingDataSource类来根据请求路由到不同的数据源.具体做法是先设置两个不同的dataSource代表不同的数据源,再建一个总的 ...
- 【ORACLE】解锁scott帐号
sqlplus / as sysdba;SQL> alter user scott account unlock;SQL> conn scott/grace