在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

CloudStack如何生成Signature调用API

112次阅读
没有评论

共计 2665 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章主要介绍了 CloudStack 如何生成 Signature 调用 API,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

    一:前言  

/*************** 该段 - 官话 ********************/

CloudStack API 也是基于 Web Service,可以使用任何一种支持 HTTP 调用的语言(例如 Java,PHP)编写代码。

调用代码(caller)首先需要在管理服务器进行认证。目前 CloudStack 采用两种认证方式:

Session 认证:通过 login API,获得一个 JSESSIONID cookie 和一个 SESSIONKEY token。

API Key 认证。

/*************** 该段 - 官话 ********************/

二:采用 API Key 进行认证:

1、生成 Signature 之前,我们得先拥有 [API Key] [Security  Key],该文主要记录 Signature 加密实现,如何生成这两个 Key   撸主 便不再赘述。

2、官方提供生成 Signature   的语言是 Perl:地址如下,可自行观摩:

  https://github.com/snumano/CloudStack-API/blob/master/generate-url.pl

3、进而撸主又找到了 Python 版本:地址如下:

  https://github.com/jasonhancock/cloudstack-pythonclient/blob/master/CloudStack/BaseClient.py

4、当然也少不了 Java 版本的:CloudStack 开源包里应该能找到,在此撸主分享一篇帖文:

 http://blog.csdn.net/rishengcsdn/article/details/38387721

  三:使用 C# 生成 Signature,有了以上资料,写起 C# 版本的,自是得心应手,当然也有些许差异,几个问题需要注意:

 1、[ApiKey] [SecretKey] 字符串较长,切勿出错

 2、参数加密时以小些形式

 3、参数加密时,需要对其进行排序(以参数第一个字母为准)

 4、加密前统一编码:UTF8

 5、加密方式为:HmacSha1

 6、加密后信息确认编码为:UTF8

 7、组合字符串

四:代码实现(仅供参考,测试代码)

如:获取云主机的状态信息

参数信息:

    调用地址:“http://*.*.*.*:**/client/api?”

   API 名称:“listVirtualMachines”

    参       数:

               details=stats   状态

               account=admin 操作人账号

               id=**** 虚拟主机编号

API    KEY:“******************”

SecretKey:“****************”

 ///  summary   生成  CloudStack Signature  可执行 Url
 ///  生成  CloudStack  可执行 Url
 ///  /summary 
 ///  returns /returns 
 public string GetSignatureApiUrl()
 {
 /*  调用 CloudStack API  生成 Signature  并组合完整 URL
 * 1、根据配置获取参数
 * 2、有效性验证
 * 3、参数信息排序
 * 4、统一编码  UTF-8
 * 5、使用 HmacSha1  编码加密
 * 6、加密后内容再次转 UTF-8
 * 7、组合
 */
 var ApiKey= ********************* 
 var SecretKey= ****************** 
 
 //CloudStack API  调用地址
 var DeveloperServer = http://*.*.*.*:**/client/api? 
 
 //ApiKey  统一编码
 Encoding enc = new UTF8Encoding();
 string encodedApiKey = HttpUtility.UrlEncode(ApiKey, enc);
 string encodedSecreKey = HttpUtility.UrlEncode(SecretKey, enc);
 
 // 参数,传递过来
 List string  Args = new List string 
 Args.Add(command= +Command)
 Args.Add( details=stats 
 Args.Add( account=admin 
 Args.Add( id=**** 
 
 // 有效性验证
 // 略
 
 var oldparmsString=string.Join(,Args);
 
 Args.Add(apikey= +ApiKey)
 // 参数信息进行排序
 Args = Args.OrderBy(o= o).ToList();
 
 // 参数拼接
 var paramsString = string.Join(,Args);
 // 对执行信息进行加密
 string signature = new HashEncryptHelp().HmacSha1(encodedSecreKey, paramsString.Tolower());
 // 加密信息转 UTF-8
 string encodedSignature = HttpUtility.UrlEncode(signature, enc);
 // 组合 URL 字符
 string url = DeveloperServer + oldparmsString+  apikey=  + encodedApiKey +  signature=  + encodedSignature;
 return url;
 }

输出:http://*.*.*.*:**/client/api?command=listVirtualMachines details=stats account=admin id=**** apikey=**** signature=****

测试执行:成功.

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“CloudStack 如何生成 Signature 调用 API”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-17发表,共计2665字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 精品久久人人妻人人做精品 | 日韩少妇激情一区二区 | 亚洲人成中文字幕在线观看 | 狠狠干夜夜草 | 在线涩涩免费观看国产精品 | 精品免费久久久久久影院 | 成人永久免费高清 | 四虎成人欧美精品在永久在线 | 91精品免费不卡在线观看 | 免费看美女的网站 | 台湾佬中文娱乐成人22vvvv | aⅴ免费视频 | 欧美激情一区二区三区四区 | 少妇又色又紧又爽又刺激视频 | 好大好深好猛好爽视频拍拍拍 | 少妇特殊按摩高潮惨叫无码 | 亚洲欧美日韩精品永久在线 | 午夜啪啪剧场 | 亚洲精品白浆高清久久久久久 | 久久婷婷五月综合色一区二区 | 国产精品系列在线一区 | 国产精品亚洲一区二区三区喷水 | 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人系列 | 九九精品免视看国产成人 | 久在草| 婷婷丁香五月六月综合激情啪 | 国产精品沙发午睡系列 | 亚洲综合色丁香婷婷六月图片 | 四虎影视免费在线观看 | 亚洲午夜小视频 | 日韩精品亚洲专区在线观看 | 夜夜嗨视频网 | 无码乱人伦一区二区亚洲 | www国产亚洲精品 | 国产亚洲高清视频 | 国产精品永久久久久久久久久 | 在线欧美精品一区二区三区 | 精品人妻va出轨中文字幕 | 午夜免费观看视频 | 欧美亚洲精品一区二区 | 黄色视频免费在线观看 |