检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
URI API接口的调用路径及参数。 请参考各云服务的详细接口章节获取。 AK/SK 访问密钥对,包含密钥ID与密钥。AK/SK用于对请求内容进行签名。 获取方式请参考获取AK/SK。 Project_Id 项目ID,在大多数API接口调用时需要配置在URI中,用以识别不同的项目。 获取方式请参考获取项目ID。
添加签名信息到请求头 在计算签名后,将它添加到Authorization的HTTP消息头。Authorization消息头未包含在已签名消息头中,主要用于身份验证。 伪代码如下: Authorization header创建伪码: Authorization: algorithm Access=Access
C++ 准备环境 以Linux Ubuntu系统为例,首先需要安装SSL相关工具。 安装openssl库。 apt-get install libssl-dev 安装curl库。 apt-get install libcurl4-openssl-dev 获取SDK 签名SDK只包
如果您按照AK/SK签名认证算法详解自行完成API请求签名,请注意X-Sdk-Date必须参与签名,其他请求消息头参数可选。 如果您使用华为云提供的SDK进行签名,则不需要考虑哪些请求消息头参数参与签名,SDK的签名方法自行决定哪些参数参与签名,并生成签名信息。如果某个请求消息头参数的值在签名后会发生变化,请完成签名后再对其赋值。
到应用时,请在消息头添加以下参数和参数值: X-Security-Token:{securityToken} 然后使用临时AK/SK对请求进行签名,签名SDK与AK/SK的签名SDK一致。 创建一个API,安全认证选择“华为IAM认证”,并发布。 获取当前账号的临时AK/SK与{
global service and X-Project-Id for invoking a project-level service. 进行签名,执行此函数会生成一个新的HttpWebRequest,并在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。
C 准备环境 以Linux Ubuntu系统为例,首先需要安装SSL相关工具。 安装openssl库。 1 apt-get install libssl-dev 安装curl库。 1 apt-get install libcurl4-openssl-dev 获取SDK 签名S
签名SDK只包含签名功能,不包含云服务的SDK功能,云服务SDK请参见SDK。 准备环境 获取并安装IDEA 2022.2.1,可至IDEA官方网站下载可执行文件进行安装,或者下载全量压缩包并解压后直接使用。 JDK:Java Development Kit 1.8.111及以上版本,可至Oracle官方下载页面下载。暂不支持Java
规范查询字符串需要满足以下内容: 根据以下规则对每个参数名和值进行URI编码: 请勿对RFC 3986定义的任何非预留字符进行URI编码,这些字符包括:A-Z、a-z、0-9、-、_、.和~。 使用%XY对所有非预留字符进行百分比编码,其中X和Y为十六进制字符(0-9和A-F)。例如
Body体是否可以不参与签名 当您不想对Body进行签名时,请在消息头添加以下参数和参数值: X-Sdk-Content-Sha256:UNSIGNED-PAYLOAD 添加之后,对body计算hash的位置的值为UNSIGNED-PAYLOAD。 父主题: 常见问题
访问密钥保护关闭时,所有IAM用户可以管理(包含创建、启用/停用或删除)自己的访问密钥。 访问密钥保护开启时,仅管理员可以管理用户的访问密钥。 如果您无法管理您的访问密钥,请联系管理员: 由管理员管理您的访问密钥,方法请参见:管理IAM用户访问密钥。 请管理员为您配置权限或修改访问密钥保
创建待签字符串 对HTTP请求进行规范并取得请求的哈希值后,将其与签名算法、签名时间一起组成待签名字符串。 StringToSign = Algorithm + \n + RequestDateTime + \n + HashedCanonicalRequest
需要在上图Body框中添加body(格式与发送请求的body一致)。 复制4图中的curl命令,在cmd命令行中执行,curl命令执行后再进行下一步。 curl -X GET "http://192.168.0.1:10000/get" -H "X-Sdk-Date: 20221208T015751Z"
编号获取步骤如下: 登录控制台。 将鼠标移至页面右上角的用户名处,在下拉列表中单击“我的凭证”,查看“项目ID”。 项目用于对云服务器资源进行物理隔离,默认有region级别的隔离,也可在Region下建立多项目,做更细级别的隔离。因此,请参考下图,在右侧列表中找到您的服务器资源
IDEA中安装Go插件,如果未安装,请按照图1所示安装。 图1 安装Go插件 获取SDK 点此下载SDK与Demo 根据解压后获取的SDK代码及示例代码进行开发。 名称 说明 core\escape.go 特殊字符转义 core\signer.go 签名SDK demo.go 示例代码 新建工程
Python安装完成后,在命令行中使用pip安装“requests”库。 pip install requests 如果pip安装requests遇到证书错误,请下载并使用Python执行此文件,升级pip,然后再执行以上命令安装。 在IDEA中安装Python插件,如下图所示。 获取SDK
setBody("demo"); } catch (Exception e) { e.printStackTrace(); return; } 对请求进行签名,生成okhttp3.Request对象来访问API。 1 2 3 okhttp3.Request signedRequest = Client
project-level service. $req->headers = array( 'X-Project-Id' => 'xxx', ); 进行签名,执行此函数会生成一个$curl上下文变量。 1 $curl = $signer->Sign($req); 访问API,查看访问结果。
invoking a project-level service. r.headers = {"X-Project-Id": "xxx"}; 进行签名,执行此函数会生成请求参数,用于创建https请求,请求参数中添加了用于签名的X-Sdk-Date头和Authorization头。 1
错误码说明 当您使用各云服务的API时,如果遇到“APIGW”开头的错误码,请参考如下语义与解决方案进行处理。 表1 错误码 错误码 错误信息 HTTP状态码 语义 解决方案 APIGW.0101 The API does not exist or has not been published