nodejs版 阿里云开放api签名算法
2017-08-05 23:31
92 查看
阿里云 API 签名
github:https://github.com/liuyinglong/aliyun;npm :https://www.npmjs.com/package/aliyun-apisign
阿里云已开放的API
https://develop.aliyun.com/tools/openapilistinstall
npm install aliyun-apisign --save
use
let AliCloudClient = require("../aliCloudClient"); let aliClient=new AliCloudClient({ AccessKeyId:"your AccessKeyId", AccessKeySecret:"your AccessKeySecret", serverUrl:"http://alidns.aliyuncs.com" }); //获取解析列表 aliClient.get("/",{ Action:"DescribeDomainRecords", DomainName:"yourDomain.cn" }).then(function(data){ console.log(data.body) }).catch(function(err){ console.log(err); });
小案例-》利用阿里云开放api进行动态域名解析
每分钟获取一次公网 IP,如果检测到公网IP发生了变化,则调用aliyun的开放接口进行更新let AliCloudClient = require("../aliCloudClient"); let Req = require("../request"); let request = new Req(); let schedule = require("node-schedule"); let aliClient = new AliCloudClient({ AccessKeyId: "your AccessKeyId", AccessKeySecret: "your AccessKeySecret", serverUrl: "http://alidns.aliyuncs.com" }); let domainNameValue = "www"; let recordId, //记录ID ip; function getMyIp() { return request.post("http://ip.taobao.com/service/getIpInfo2.php", { ip: "myip" }).then(function (data) { return data.body.data.ip; }).catch(function (err) { return Promise.reject(err); }) } function getDomainRecords() { return aliClient.get("/", { Action: "DescribeSubDomainRecords", SubDomain: "www.yourDomain.cn" }).then(function (data) { let body = data.body; let record = body.DomainRecords.Record[0]; recordId = record.RecordId; return record.Value; }).catch(function (err) { return Promise.reject(err); }) } function upDateRecords() { return aliClient.get("/", { Action: "UpdateDomainRecord", RecordId: recordId, RR: domainNameValue, Type: "A", Value: ip }).then(function (data) { console.log(new Date() + ip + " 修改成功"); }).catch(function (err) { console.log(err) }) } function watchIpChange() { return getMyIp().then(function (tempIp) { if (ip === tempIp) { return; } if (!ip) { return; } console.log(new Date()+ ip + "=>"+ tempIp); ip = tempIp; upDateRecords(); }).catch(function(err){ console.log(err); }) } Promise.all([getMyIp(), getDomainRecords()]).then(function (result) { ip = result[0]; let domainValue = result[1]; if (ip !== domainValue) { upDateRecords(); } }); schedule.scheduleJob("0 * * * * *", function () { watchIpChange(); });
相关文章推荐
- 阿里云API网关(17)签名算法
- 基于Python的阿里云API签名算法及邮件推送服务
- Nodejs项目部署阿里云完整流程
- 拜占庭将军问题中的签名算法SM,以及有关证明。
- 阿里云 消息服务中 获取签名方法
- 微信JS SDK使用权限签名算法 jsapi_ticket
- 在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs)
- SEO思维:如何运用数据分析论坛签名和外链在百度新算法中的效果
- 签名认证算法Digest
- 阿里云短信服务 nodejs版本SDK,非阿里大鱼
- 微信JS-SDK使用权限签名算法的服务端实现(.net版本)
- 微信JS SDK使用权限签名算法
- RSA加解密及签名算法的技术原理及其Go语言实现
- 微信签名生成算法
- 开放平台中oauth认证中请求参数签名的算法
- 阿里巴巴全球速卖通(AliExpress)参数签名算法
- 签名算法PHP和Java的不同实现
- RSA加密算法原理及RES签名算法简介
- 微信支付开发教程JAVA编[005]-签名算法
- android app签名后阿里云OSS上传失败问题 Compute signature failed