步骤1. 序列化请求头 按照以下方式,将所有以x-acs-开头的HTTP头拼接成字符串: 抽取所有以x-acs-开头的HTTP头。 对抽取出来的头按字典顺序排序。 对每个HTTP头,按"HTTP头名称" + ":" + "HTTP头值" + "\n"拼接。 步骤2. 序列化URI和query参数 按照uri + "?clientInfo=" + "ClientInfo的JSON字符串"方式拼接URI和clientInfo参数。
说明 这里不需要URL编码。但在HTTP请求中,是应该URL编码的。 步骤3. 构建完整的待签名字符串 按照以下方式,构建完整的待签名字符串:
"POST\napplication/json\n" + "HTTP头Content-MD5的值" + "\n" + "application/json" + "\n" + "HTTP头Date的值" + "\n" + "序列化请求头" + "序列化uri和query参数" 步骤4. 生成签名 对步骤3中得到的字符串,使用AccessKeySecret进行HMAC-SHA1算法加密,并进行base64编码。然后将结果放到HTTP头Authorization中的signature: "acs" + " " + AccessKeyId + ":" + signature
说明 acs和AccessKeyId之间有空格。HMAC-SHA1算法中的secret key是和AccessKeyId对应的secret。 示例 以下是一个完整的调用图片同步检测任务的待签名字符串示例:
POST application/json C+5Y0crpO4sYgC2DNjycug== application/json Tue, 14 Mar 2017 06:29:50 GMT x-acs-signature-method:HMAC-SHA1 x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202 x-acs-signature-version:1.0 x-acs-version:2018-05-09 /green/image/scan?clientInfo={"ip":"127.0.0.2","userId":"120234234","userNick":"Mike","userType":"others"}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。