鉴权V2版本
使用 xstore 标准的签名鉴权方式:通过在请求头中加入Date以及Signature的方式进行鉴权。
以下的URL中均不包含链接地址(如https://xstore.ctyun.cn/)和部署的上下文地址(如/xstore-transcode)
1、 signature形式:AWS {access-key}:{hash-of-headers-and-secret}
- 使用具体的access key代替{access-key} ,在其后紧跟一个冒号:;
- 将x-amz开头及特定的请求头和 对应的secret key hash 之后的结果替换{hash-of-header-and-secret}。
2、签名AWS {access-key}:{hash-of-headers-and-secret}生成步骤:
- 获取头字符串;
- 将请求头字符串格式化为规范格式;
- 使用 SHA-1 hashing 算法生成 HMAC 查看 RFC 2104 和 HMAC 获取详细信息;
- 使用 base-64 将 hmac 结果再次编码;
- 将请求头字符串格式化为规范格式;
- 获取所有以 x-amz- 开头的所有字段;
- 确保这些字段都是小写字母;
- 按照字母顺序将这些字段排序;
- 将多个实例中相同的字段名称合并到一个单个字段中 在这个字段中使用逗号分隔这些值;
- 将字段的值中的空格和换行符替换为单个空格;
- 删除冒号前后的空格;
- 在每个字段后追加一个空行;
- 将所有字段合并到头字符串中;
- 将 HMAC 字符串使用 base-64编码的结果替换 {hash-of-header-and-secret}。
所有接口都采用restful风格编写,接口返回结果统一为json形式:
字段 | 说明 |
---|---|
code | 返回码,0表示成功,非0表示失败; |
message | 成功/或失败信息; |
content | 返回数据集; |
pageCount | 总页数; |
total | 总记录数; |
data | 为备用字段 |
对于查询接口都兼容分页/不分页形式:
参数 | 说明 |
---|---|
pageIndex | 起始页码,从0开始 |
pageSize | 每页数据条数,从1开始 |
备注 | 不传分页信息查出全部 |
#!/bin/sh
host="gdoss.xstore.ctyun.cn"
accessKey="请替换此处为自有AK"
secretKey="请替换此处为自有SK"
DateValue="`TZ=GMT date +'%a, %d %b %Y %H:%M:%S GMT'`"
Url="http://${host}${resource}"
StringToSign="{httpMethod}\n\n\n${DateValue}\n${resource}"
signature=`echo -en ${StringToSign} | openssl sha1 -hmac ${secretKey} -binary | base64`
curl ${Param} -H \"Date: ${DateValue}\" -H \"signature: AWS ${accessKey}:${signature}\" \"${Url}\"