Error

An error occurred.

Sorry, the page you are looking for is currently unavailable.
Please try again later.

If you are the system administrator of this resource then you should check the error log for details.

Faithfully yours, nginx.

帮助文档(华北一、二)

  • 1. 将请求参数按照名进行升序排列

     

    {

        "Action"     :  "CreateUHostInstance",

        "ChargeType" :  "Month",

        "CPU"        :  2,

        "DiskSpace"  :  10,

        "ImageId"    :  "f43736e1-65a5-4bea-ad2e-8a46e18883c2",

        "LoginMode"  :  "Password",

        "Memory"     :  2048,

        "Name"       :  "Host01",

        "Password"   :  "VUNsb3VkLmNu",

        "PublicKey"  :  "inspurcloudsomeone@example.com1296235120854146120",

        "Quantity"   :  1,

        "Region"     :  "cn-inspur2",

        "Zone"       :  "cn-inspur2-01"

    }

    2. 构造被签名参数串

    被签名串的构造规则为: 被签名串 = 所有请求参数拼接(无需HTTP转义)。并在本签名串的结尾拼接API密钥的私钥(PrivateKey)。

    ctionCreateUHostInstanceCPU2ChargeTypeMonthDiskSpace10ImageIdf43736e1-65a5-4bea-ad2e-8a46e18883c2LoginModePasswordMemory2048NameHost01PasswordVUNsb3VkLmNuPublicKeyucloudsomeone@example.com12962351208541
    46120Quantity1Regioncn-inspur2Zonecn-inspur2-0446f09bb9fab4f12dfc160dae12273d5332b5debe

    3. 计算签名

    生成被签名串的 SHA1 签名,即是请求参数”Signature”的值。

    按照上述算法,本例中,计算出的Signature为 4f9ef5df2abab2c6fccd1e9515cb7e2df8c6bb65

    Python 生成签名代码:

     

    import hashlib

    import urlparse

    import urllib

    def _verfy_ac(private_key, params):

    ​    items=params.items()

    ​    # 请求参数串

    ​    items.sort()

    ​    # 将参数串排序

        params_data = "";

        for key, value in items:

            params_data = params_data + str(key) + str(value)

    params_data = params_data + private_key

        sign = hashlib.sha1()

        sign.update(params_data)

    signature = sign.hexdigest()

        return signature

        # 生成的Signature值

    PHP 生成签名代码:

     

    function _verfy_ac($private_key, $params) {

       ksort($params);

       # 参数串排序

       $params_data = "";

       foreach($params as $key => $value) {

    ​       $params_data .= $key;

    ​       $params_data .= $value;

       }

       $params_data .= $private_key;

       return sha1($params_data);

       # 生成的Signature值

    }

    4. 使用签名组合HTTP请求

    4.1 Json方式

     

    curl -X POST \

      https://api.cloud.inspur.com\

      -H 'Content-Type: application/json' \

      -d '{

    ​    "Action"     :  "CreateUHostInstance",

    ​    "ChargeType" :  "Month",

    ​    "CPU"        :  2,

    ​    "DiskSpace"  :  10,

    ​    "ImageId"    :  "f43736e1-65a5-4bea-ad2e-8a46e18883c2",

    ​    "LoginMode"  :  "Password",

    ​    "Memory"     :  2048,

    ​    "Name"       :  "Host01",

    ​    "Password"   :  "VUNsb3VkLmNu",

    ​    "PublicKey"  :  "inspurcloudsomeone@example.com1296235120854146120",

    ​    "Quantity"   :  1,

    ​    "Region"     :  "cn-binspur2",

    ​    "Zone"       :  "cn-inspur2-01",

        "Signature"  :  "4f9ef5df2abab2c6fccd1e9515cb7e2df8c6bb65"

    }'

    4.2 拼接参数方式

    对排序后的请求参数进行URL编码,URL 编码的规则如下:

    ● 字符 A~Z、a~z、0~9不编码;

    ● 字符“-”、“_”、“.”、“~”不编码;

    ● 其它字符编码成 %XY 的格式,其中 XY 是字符对应 ASCII 码的 16 进制表示。比如:英文的双引号(”)对应的编码为 %22;

    ● 对于扩展的 UTF-8 字符,编码成 %XY%ZA… 的格式;

    ● 英文空格( )要编码成 %20,而不是加号(+)。

    ● "PublicKey" 无需编码

    构造HTTP请求,参数名和参数值之间用 "=" 连接,参数和参数之间用"&"号连接,构造的URL请求为:

     

    http(s)://api.cloud.inspur.com/?Action=CreateUHostInstance

    &CPU=2

    &ChargeType=Month

    &DiskSpace=10

    &ImageId=f43736e1-65a5-4bea-ad2e-8a46e18883c2

    &LoginMode=Password

    &Memory=2048

    &Name=Host01

    &Password=VUNsb3VkLmNu

    &PublicKey=inspurcloudsomeone%40example.com1296235120854146120

    &Quantity=1

    &Region=cn-inspur2

    &Zone=cn-inspur2-01

    将签名参数附在原有请求串的最后面。最终的HTTP请求串为(为了查看方便,我们人为地将参数之间用回车分隔开),完整的请求URL如下:(为了方便,我们人为地将参数之间用回车分隔开)。

     

    http(s)://api.cloud.inspur.com/?Action=CreateUHostInstance

    &CPU=2

    &ChargeType=Month

    &DiskSpace=10

    &ImageId=f43736e1-65a5-4bea-ad2e-8a46e18883c2

    &LoginMode=Password

    &Memory=2048

    &Name=Host01

    &Password=VUNsb3VkLmNu

    &PublicKey=inspurcloudsomeone%40example.com1296235120854146120

    &Quantity=1

    &Region=cn-inspur2

    &Zone=cn-inspur2-02

    &Signature=4f9ef5df2abab2c6fccd1e9515cb7e2df8c6bb65

文档是否已解决您的问题?

  已解决   未解决

如您有其它疑问,您也可以与我们技术专家联系探讨。

联系技术专家