nodejs版 阿里云开放api签名算法
2020-03-02 02:55
1276 查看
阿里云 API 签名
github:https://github.com/liuyinglong/aliyun;
npm :https://www.npmjs.com/package/aliyun-apisign
阿里云已开放的API
https://develop.aliyun.com/tools/openapilist
install
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(); });
转载于:https://www.cnblogs.com/getlove/p/7291949.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- nodejs版 阿里云开放api签名算法
- 阿里云API网关(17)签名算法
- 基于Python的阿里云API签名算法及邮件推送服务
- 百度BAE云存储签名算法的Python实现
- 将nodejs项目部署到阿里云ESC服务器,linux系统配置80端口,实现公网IP访问
- 微信使用的签名算法应用到接口认证
- 椭圆曲线加解密及签名算法的技术原理及其Go语言实现
- 数据签名标准算法-DSA (Digital signature Algorithm DSA)
- Android逆向之旅---最右App的签名算法解析(ARM指令学习不舍篇)
- JAVA和Python HmacSHA1 算法计算API签名的实现
- 一个简单的c#加密,签名,验签,解密算法.(2)
- 详解NodeJs支付宝移动支付签名及验签
- Java实现URI参数签名算法,确保应用与REST服务器之间的安全通信,防止Secret Key盗用、数据篡改等恶意攻击行为
- 开放平台中oauth认证中请求参数签名的算法
- DSA-Digital Signature Algorithm(Schnorr和ElGamal签名算法的变种)
- 签名认证算法Digest
- 微信支付签名算法的一些坑……
- sign签名算法一致算法-.net、java、golang
- 阿里云CentOS下nodejs安装
- nodejs 调用阿里云短信