公共请求参数
公共请求参数是指每个接口都需要使用到的请求参数。 参数名称 说明 选项 Authorization 用于验证请求合法性的认证信息,采用 AccessKeyId:Signature 的形式。 必须 Content-Length RFC 2616 中定义的 HTTP 请求内容长度。 必须 Content-Type RFC 2616 中定义的 HTTP 请求内容类型。 必须 Content-MD5 HTTP 协议消息体的 128-bit MD5 散列值转换成 BASE64 编码的结果。为了防止所有请求被篡改,建议所有请求都附加该信息。 必须 Date 请求的构造时间,目前只支持 GMT 格式。如果与 MNS 的服务器时间前后差异超过 15 分钟将返回本次请求非法。 必须 Host 访问 Host 值,例如:cr.cn-hangzhou.aliyuncs.com。 必须 Accept 客户端需要的返回值类型,支持 application/json 和 application/xml。 必须 x-acs-version API 版本号。参见 API版本。 必须 x-acs-region-id 地域(Region)指的是容器镜像所在的物理位置。参见 地域列表。 必须 x-acs-signature-nonce 唯一随机数,用于防止网络重放攻击。您在不同请求间要使用不同的随机数值。 必须 x-acs-signature-method 用户签名方式,目前只支持 HMAC-SHA1。 必须 示例
GET /namespaces HTTP/1.1
Authorization: acs ACSbW2iBbyX1Pk9N:mp/6Wdr18V3qAc5gbgsqMe/iB0c
Content-Length: 0
Content-Type: application/json;charset=utf-8
Date: Wed, 23 May 2018 12:00:01 GMT
Host: cr.cn-hangzhou.aliyuncs.com
Accept: application/json
x-acs-version: 2016-06-07
x-acs-region-id: cn-hangzhou
x-acs-signature-nonce: f63659d4-10ac-483b-99da-ea8fde61eae3
x-acs-signature-version: 1.0
x-acs-signature-method: HMAC-SHA1
User-Agent: cr-sdk-python/3.0.0 (Darwin/15.2.0/x86_64;2.7.10)
公共返回
您发送的每次接口调用请求,无论成功与否,系统都会返回一个唯一识别码 RequestId。 示例
XML 示例:
<?xml version="1.0" encoding="UTF-8"?>
<接口名称+Response>
<!--返回请求标签-->
<RequestId>4C467B38-3910-447D-87BC-AC049166F216</RequestId>
<!--返回结果数据-->
</接口名称+Response>
JSON 示例:
{
"RequestId": "4C467B38-3910-447D-87BC-AC049166F216"
/* 返回结果数据 */
}
地域列表 地域名称 所在城市 RegionId 华北1 青岛 cn-qingdao 华北2 北京 cn-beijing 华北3 张家口 cn-zhangjiakou 华北5 呼和浩特 cn-huhehaote 华东1 杭州 cn-hangzhou 华东2 上海 cn-shanghai 华南1 深圳 cn-shenzhen 香港 香港 cn-hongkong 亚太东北1 东京 ap-northeast-1 亚太东南1 新加坡 ap-southeast-1 亚太东南2 悉尼 ap-southeast-2 亚太东南3 吉隆坡 ap-southeast-3 亚太东南5 雅加达 ap-southeast-5 亚太南部1 孟买 ap-south-1 美国东部1 弗吉尼亚 us-east-1 美国西部1 硅谷 us-west-1 中东东部1 迪拜 me-east-1 欧洲中部1 法兰克福 eu-central-1 金融云地域列表 地域名称 所在城市 RegionId 华东2 (上海金融云) cn-shanghai-finance-1
接入地址
阿里云容器镜像的 Open API 接入地址为 cr.{regionId}.aliyuncs.com。具体 RegionId 参见地域列表 通信协议
支持通过 HTTP 或 HTTPS 通道进行请求通信。为了获得更高的安全性,推荐您使用 HTTPS 通道发送请求。 请求方法
使用 HTTP 的 PUT、 POST、 GET、 DELETE 等 HTTP Method 发送不同的请求。 请求参数
每个请求都需要包含公共请求参数和指定 API 所特有的请求参数。 请求编码
请求及返回结果都使用UTF-8字符集进行编码。
调用 API 后返回数据采用统一格式,返回的 HTTP 状态码为 2XX,代表调用成功;返回 4XX 或 5XX 的 HTTP 状态码代表调用失败。
调用成功返回的数据格式主要有 XML 和 JSON 两种。外部系统可以在请求时,传入参数来制定返回的数据格式。默认为 XML 格式。
API 文档中的返回示例为了便于查看,做了格式化处理,实际返回结果没有进行换行、缩进等处理。 签名
API 签名包含两部分:公共请求头(HTTP 协议 Header 参数和阿里云协议 Header 参数)和 CanonicalizedResource(规范资源),Body 不计入签名。
Access Key ID和Access Key Secret由阿里云官方颁发给访问者(可以通过阿里云官方网站申请和管理),其中Access Key ID用于标识访问者的身份;Access Key Secret是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密,只有阿里云和用户知道。
系统会对每个访问的请求进行验证,每个提交的请求都需要在请求中包含签名(Signature)信息。系统通过使用Access Key ID和Access Key Secret进行对称加密的方法来验证请求的发送者身份。如果计算出来的验证码和提供的一样,即认为该请求是有效的;否则请求将被拒绝处理,并返回 HTTP 403 错误。
请求要求将签名包含在 HTTP Header 中,格式为 Authorization: acs [Access Key Id]:[Signature]。 签名计算方法
签名计算方法如下:
Signature = base64(hmac-sha1(VERB + "\n"
+ ACCEPT + "\n" +
+ Content-MD5 + "\n"
+ Content-Type + "\n"
+ Date + "\n"
+ CanonicalizedHeaders + "\n"
+ CanonicalizedResource))
VERB 表示 HTTP 的 Method。比如示例中的 PUT。
Accept 客户端需要的返回值类型,支持 application/json 和 application/xml。
Content-MD5 表示请求内容数据的 MD5 值。
Content-Type 表示请求内容的类型。
Date 表示此次操作的时间,不能为空,目前只支持 GMT 格式。如果请求时间与服务器时间相差超过 15 分钟,系统会判定此请求不合法,并返回 400 错误。比如示例中的 Thu, 17 Mar 2018 18:00:00 GMT。
CanonicalizedHeaders 表示 HTTP 中以 x-acs- 开始的字段组合。
CanonicalizedResource 表示 HTTP 所请求资源的 URI (统一资源标识符)。比如 /namespaces。
CanonicalizedHeaders
CanonicalizedHeaders(即以 x-acs- 开头的 Header)在签名验证前需要符合以下规范:
将所有以 x-acs- 为前缀的 HTTP 请求头的名字转换成小写字母。比如将 X-ACS-Meta-Name: TaoBao 转换为 x-acs-meta-name: TaoBao。阿里云规范请求头的名字是大小写不敏感的,建议全部使用小写。
如果一个公共请求头的值部分过长,则需要处理其中的 \t、\n、\r、\f分隔符,将其替换为英文半角的空格。
将上一步得到的所有 HTTP 阿里云规范头按照字典序进行升序排列。
删除请求头和内容之间分隔符两端出现的任何空格。比如将 x-acs-meta-name: TaoBao,Alipay 转换为 x-acs-meta-name:TaoBao,Alipay。
将所有的头和内容用 \n 分隔符分隔拼成最后的 CanonicalizedHeaders。
CanonicalizedResource
CanonicalizedResource 表示客户想要访问资源的规范描述,需要将子资源和 qurey 一同按照字典序,从小到大排列并以 & 为分隔符生成子资源字符串(? 后的所有参数)。
http://cr.cn-hangzhou.aliyuncs.com/repository?name=repository1&namespace=namespace1
CanonicalizedResource 应该为:
/repository?name=repository1&namespace=namespace1
版本
更新时间:2018-05-23 13:28:07 API 版本 说明 2016-06-07 提供命名空间、仓库、镜像仓库等API
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。