阿里云老版人脸识别NodeJS调用示例参考

简介: 前面分别给出了关于阿里云人脸识别Java调用示例参考、阿里云人脸识别C#调用示例参考、阿里云人脸识别Python3调用示例参考 、阿里云人脸识别PHP调用示例参考。本文主要介绍DodeJS调用阿里云人脸识别服务,参数等的获取参考阿里云人脸识别使用流程简介。

Code Sample

1、使用网络图片

var request = require('request');
var url = require('url');
var crypto = require('crypto');
var date = new Date().toUTCString()
// 这里填写AK和请求
var ak_id = '********';
var ak_secret = '********';
var options = {
  url : 'https://dtplus-cn-shanghai.data.aliyuncs.com/face/attribute',
  method: 'POST',
  body: '{"type": "0", "image_url":"https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1553926699&di=3e4484731c8897c57e67b3f632801f9a&src=http://b-ssl.duitang.com/uploads/item/201603/28/20160328121906_ErzAB.jpeg"}',
  headers: {
    'accept': 'application/json',
    'content-type': 'application/json',
    'date': date,
    'Authorization': ''
  }
};


md5 = function(buffer) {
  var hash;
  hash = crypto.createHash('md5');
  hash.update(buffer);
  return hash.digest('base64');
};
sha1 = function(stringToSign, secret) {
  var signature;
  return signature = crypto.createHmac('sha1', secret).update(stringToSign).digest().toString('base64');
};
// step1: 组stringToSign [StringToSign = #{method}\\n#{accept}\\n#{data}\\n#{contentType}\\n#{date}\\n#{action}]
var body = options.body || '';
var bodymd5;
if(body === void 0 || body === ''){
  bodymd5 = body;
} else {
  bodymd5 = md5(new Buffer(body));
}
console.log(bodymd5)
var stringToSign = options.method + "\n" + options.headers.accept + "\n" + bodymd5 + "\n" + options.headers['content-type'] + "\n" + options.headers.date + "\n" + url.parse(options.url).path;
console.log("step1-Sign string:", stringToSign);
// step2: 加密 [Signature = Base64( HMAC-SHA1( AccessSecret, UTF-8-Encoding-Of(StringToSign) ) )]
var signature = sha1(stringToSign, ak_secret);
// console.log("step2-signature:", signature);
// step3: 组authorization header [Authorization =  Dataplus AccessKeyId + ":" + Signature]
var authHeader = "Dataplus " + ak_id + ":" + signature;
console.log("step3-authorization Header:", authHeader);
options.headers.Authorization = authHeader;
console.log('authHeader', authHeader);
// step4: send request
function callback(error, response, body) {
  if (error) {
    console.log("error", error)
  }
  console.log("step4-response body:", response.statusCode, body)
}
request(options, callback);

2、使用本地图片

var request = require('request');
var url = require('url');
var crypto = require('crypto');
var date = new Date().toUTCString()
// 这里填写AK和请求
var ak_id = '********';
var ak_secret = '********';

// 读取本地图片并转base64编码
var fs = require("fs");
var filePath = "time.jpeg";
var imageData = fs.readFileSync(filePath); // 例:fileUrl="D:\\test\\test.bmp"
var imageBase64 = imageData.toString("base64");

var options = {
  url : 'https://dtplus-cn-shanghai.data.aliyuncs.com/face/attribute',
  method: 'POST',
  body: '{"type": "1", "content":"'+imageBase64+'"}',
  headers: {
    'accept': 'application/json',
    'content-type': 'application/json',
    'date': date,
    'Authorization': ''
  }
};


md5 = function(buffer) {
  var hash;
  hash = crypto.createHash('md5');
  hash.update(buffer);
  return hash.digest('base64');
};
sha1 = function(stringToSign, secret) {
  var signature;
  return signature = crypto.createHmac('sha1', secret).update(stringToSign).digest().toString('base64');
};
// step1: 组stringToSign [StringToSign = #{method}\\n#{accept}\\n#{data}\\n#{contentType}\\n#{date}\\n#{action}]
var body = options.body || '';
var bodymd5;
if(body === void 0 || body === ''){
  bodymd5 = body;
} else {
  bodymd5 = md5(new Buffer(body));
}
console.log(bodymd5)
var stringToSign = options.method + "\n" + options.headers.accept + "\n" + bodymd5 + "\n" + options.headers['content-type'] + "\n" + options.headers.date + "\n" + url.parse(options.url).path;
console.log("step1-Sign string:", stringToSign);
// step2: 加密 [Signature = Base64( HMAC-SHA1( AccessSecret, UTF-8-Encoding-Of(StringToSign) ) )]
var signature = sha1(stringToSign, ak_secret);
// console.log("step2-signature:", signature);
// step3: 组authorization header [Authorization =  Dataplus AccessKeyId + ":" + Signature]
var authHeader = "Dataplus " + ak_id + ":" + signature;
console.log("step3-authorization Header:", authHeader);
options.headers.Authorization = authHeader;
console.log('authHeader', authHeader);
// step4: send request
function callback(error, response, body) {
  if (error) {
    console.log("error", error)
  }
  console.log("step4-response body:", response.statusCode, body)
}
request(options, callback);

测试结果

_

相关文章
|
9天前
|
存储 弹性计算 Linux
阿里云账号注册、完成实名认证、试用云服务器和购买云服务器流程参考
本文为大家介绍新手用户从注册阿里云账号,完成实名认证,然后试用云服务器和购买云服务器的主要流程,适合初次购买和试用阿里云服务器的新手用户参考。
阿里云账号注册、完成实名认证、试用云服务器和购买云服务器流程参考
|
17天前
|
存储 网络协议 安全
阿里云服务器2核8G、4核16G、8核32G选型参考:经济型、通用算力型和通用型选择参考
2核8G、4核16G、8核32G配置是用户关注度比较高的热门配置,在阿里云服务器的实例规格中,这些配置一般有经济型e、通用算力型u1、通用型g7和通用型g8y等多种实例规格,虽然配置相同,但是这些实例规格之间的性能和价格差别是很大的,因此,我们有必要弄清楚他们之间的差别,这样才能根据自己的需求选择最适合自己的实例。本文将为您详细解析这些实例规格的性能、价格及应用场景,以供参考和选择。
阿里云服务器2核8G、4核16G、8核32G选型参考:经济型、通用算力型和通用型选择参考
|
2天前
|
存储 机器学习/深度学习 缓存
阿里云服务器通用型g8y实例最新收费标准、性能介绍及与通用型g7区别参考
在我们通过阿里云的各种活动来选择通用型实例规格的云服务器时,通常有通用型g7和g8y实例可供选择,通用型g8y属于阿里云的倚天云服务器系列,采用阿里云自研倚天710 ARM架构CPU,依托第四代神龙架构,提供稳定可预期的超高性能。同时通过芯片快速路径加速手段,完成存储、网络性能以及计算稳定性的数量级提升。本文为大家介绍一下通用型g8y实例最新收费标准、性能介绍及与通用型g7区别参考。
阿里云服务器通用型g8y实例最新收费标准、性能介绍及与通用型g7区别参考
|
3天前
|
弹性计算 网络协议 安全
阿里云服务器ECS自定义购买方式各选项参数选择与注意事项参考
在我们通过自定义购买的方式购买阿里云服务器器ECS时,会有多个选项,有的新手用户可能并不是很清楚这些选项是什么,选择或设置时需要注意什么,本文将从付费类型、地域与可用区、网络及实例、镜像、存储、带宽和安全组、管理设置以及高级选项等多个方面,为您详细介绍如何选择与配置阿里云ECS实例,以供参考。
阿里云服务器ECS自定义购买方式各选项参数选择与注意事项参考
|
6天前
|
存储 弹性计算 安全
阿里云服务器怎么样?云服务器ECS产品优势、应用场景、价格解析及常见问题参考
阿里云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。把物理服务器比作买的房子,云服务器ECS,就是租赁的房子,阿里云云服务商就是管家。云服务商负责搭建机房、提供配套服务和维护,用户只需要付租金,即可“拎包入住”,无需自建机房、采购和配置硬件设施。如果不再需要云服务器,可随时“退租”(释放资源),节省成本。本文为大家解析云服务器ECS产品优势、应用场景和最新价格及常见问题。
阿里云服务器怎么样?云服务器ECS产品优势、应用场景、价格解析及常见问题参考
|
10天前
|
存储 缓存 网络协议
阿里云服务器通用型g7与通用型g8y实例深度对比及选择参考
在阿里云提供的各种通用型实例规格中,通用型g7和通用型g8y实例因其出色的性能与广泛的适用性而备受关注,对于想要购买2核8G、4核16G、8核32G等处理器与内存比为1:4配置的云服务器用户来说,这两个实例规格通常是选择比较多的,它们都主要适用于中小型数据库系统、缓存、搜索集群等各种类型的企业级应用等场景,本文将对通用型g7和通用型g8y实例进行对比,包括其架构、处理器、存储与网络能力、适用场景、指标数据、收费标准以及最新活动价格,以供参考和选择。
阿里云服务器通用型g7与通用型g8y实例深度对比及选择参考
|
18天前
|
存储 弹性计算 安全
阿里云服务器2核4G、4核8G、8核16G实例选型指南:经济型、通用算力型和计算型选择参考
2核4G/4核8G/8核16G配置的云服务器在阿里云目前的活动中有经济型e、通用算力型u1和计算型c7、计算型c8y、计算型c7a等计算型实例可选,虽然配置相同,但是这些实例规格之间的性能和价格差别是很大的,因此,我们有必要弄清楚他们之间的差别,这样才能根据自己的需求选择最适合自己的实例。
阿里云服务器2核4G、4核8G、8核16G实例选型指南:经济型、通用算力型和计算型选择参考
|
19天前
|
存储 机器学习/深度学习 编解码
深度解析阿里云服务器计算型c7与计算型c8y实例区别与选择参考
在阿里云提供的众多计算型云服务器实例规格中,计算型c7和计算型c8y实例是两款备受关注的云服务器规格。主要适用于网站应用、批量计算、视频编码等各种类型和规模的企业级应用,对于初次接触阿里云服务器的新手用户来说,可能并不是很清楚他们之间的区别,因此可能不知道怎么选择。本文将从实例的架构、处理器、存储与网络能力、使用场景、指标数据、收费标准以及实时活动价格等多个维度,对计算型c7和计算型c8y实例进行深度解析,以供参考和选择。
深度解析阿里云服务器计算型c7与计算型c8y实例区别与选择参考
|
24天前
|
存储 弹性计算 缓存
阿里云服务器计算型c7与c8y和通用型g7与g8y实例的区别与选择参考
阿里云提供了多样化的云服务器实例规格,以满足不同用户和业务场景的需求。其中,计算型c7、通用型g7以及计算型c8y、通用型g8y实例是用户关注比较高的几个云服务器实例。本文将对这四款实例进行全面解析,包括其架构、处理器、存储与网络能力、适用场景、指标数据、收费标准以及实时活动价格,以供参考。
阿里云服务器计算型c7与c8y和通用型g7与g8y实例的区别与选择参考
|
13天前
|
弹性计算
2024年阿里云免费云服务器及学生三百通用额度申请教程参考
阿里云2024年继续提供免费学生云服务器,最长可享7个月(1+6个月);还有300元无门槛抵用金,适用于全量公共云产品(特殊商品除外)。学生需完成身份认证和任务以领取和续费。此外,有3个月免费的飞天试用云服务器,分为个人和企业版。详细申请教程包括学生认证、试用产品选择等步骤,可访问指定阿里云链接进行操作。
555 2