文档简介:
示例
以下是使用V4签名的示例。示例中使用的访问密钥如下:
参数 |
值 |
AWSAccessKeyId |
2a948fd3f00ba0925806 |
AWSSecretAccessKey |
ef2017c2e5ffa0b1761717ecbca021da16501384 |
AWSSecretAccessKey |
ef2017c2e5ffa0b1761717ecbca021da16501384 |
Bucket名称:examplebucket。访问的域名是oos-cn.ctyunapi.cn, region是cn
1. 示例:GET对象
从存储桶 examplebucket中获取对象test.txt的前10个字节。请求如下:
GET /test.txt HTTP/1.1 x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 Authorization: SignatureToBeCalculated x-amz-date: 20190220T060724Z Range: bytes=0-9 Host: examplebucket.oos-cn.ctyunapi.cn |
由于此GET请求不提供任何请求体内容,因此该 x-amz-content-sha256请求头的值是空请求体的哈希值。以下步骤显示Authorization请求头的计算的方法。
1)StringToSign
a.创建规范请求
GET /test.txt
host:examplebucket.oos-cn.ctyunapi.cn range:bytes=0-9 x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 x-amz-date:20190220T060724Z
host;range;x-amz-content-sha256;x-amz-date e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
其中,最后一行是空请求体的hash值。第三行是空,因为此请求不包含请求参数。
b.待签名字符串
AWS4-HMAC-SHA256 20190220T060724Z 20190220/cn/s3/aws4_request bca722269a76aadb00dfe5a50fefdbd5712065267e1692cc596cefd2681f5d14 |
2)生成签名密钥
signing key = HMAC-SHA256(HMAC-SHA256(HMAC-SHA256(HMAC-SHA256("AWS4" + "<YourSecretAccessKey>","20190220"),"cn"),"s3"),"aws4_request") |
3)计算后的签名
be3f55b78165716c51ce37f588048f858fc27f7449d8fe74f887d999e5fc9193 |
4)Authorization请求头
Authorization: AWS4-HMAC-SHA256 Credential=2a948fd3f00ba0925806/20190220/cn/s3/aws4_request, SignedHeaders=host;range;x-amz-content-sha256;x-amz-date, Signature=be3f55b78165716c51ce37f588048f858fc27f7449d8fe74f887d999e5fc9193 |
2.示例:PUT对象
在存储桶 examplebucket中上传对象test.txt。
PUT /examplebucket/test.txt HTTP/1.1 x-amz-content-sha256: 7509e5bda0c762d2bac7f90d758b5b2263fa01ccbc542ab5e3df163be08e6ca9 Authorization:SignatureToBeCalculated x-amz-date: 20190220T070722Z x-amz-storage-class: STANDARD Host: oos-cn.ctyunapi.cn Content-Length: 12
hello world! |
以下步骤显示Authorization请求头的计算的方法。
1)StringToSign
a.创建规范请求
PUT /examplebucket/test.txt
content-length:12 host:oos-cn.ctyunapi.cn x-amz-content-sha256:7509e5bda0c762d2bac7f90d758b5b2263fa01ccbc542ab5e3df163be08e6ca9 x-amz-date:20190220T070722Z x-amz-storage-class:STANDARD
content-length;host;x-amz-content-sha256;x-amz-date;x-amz-storage-class 7509e5bda0c762d2bac7f90d758b5b2263fa01ccbc542ab5e3df163be08e6ca9 |
其中,第三行是空,因为此请求不包含请求参数。最后一行是请求体的hash值,它应该与x-amz-content-sha256 请求头的值相同。
b.待签名字符串
AWS4-HMAC-SHA256 20190220T070722Z 20190220/cn/s3/aws4_request 66919f4f7f555dec8599c5894bbd5c104767bbf0180103d751653143f67a8d45 |
2)生成签名密钥
signing key = HMAC-SHA256(HMAC-SHA256(HMAC-SHA256(HMAC-SHA256("AWS4" + "<YourSecretAccessKey>","20190220"),"cn"),"s3"),"aws4_request") |
3)计算后的签名
29407b3d2010ab3f86e313302a4d952d8ac0070364cd91ba3b113258a4d36b9b |
4)Authorization请求头
Authorization: AWS4-HMAC-SHA256 Credential=2a948fd3f00ba0925806/20190220/cn/s3/aws4_request, SignedHeaders=content-length;host;x-amz-content-sha256;x-amz-date;x-amz-storage-class, Signature=29407b3d2010ab3f86e313302a4d952d8ac0070364cd91ba3b113258a4d36b9b |
3.示例:列出存储桶中的对象
列出存储桶 examplebucket中的对象,prefix设置为“t”,最多返回2个对象。请求如下:
GET /?max-keys=2&prefix=t HTTP/1.1 x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 Authorization: SignatureToBeCalculated x-amz-date: 20190220T085955Z Host: examplebucket.oos-cn.ctyunapi.cn |
以下步骤显示Authorization请求头的计算的方法。
1)StringToSign
a.创建规范请求
GET / max-keys=2&prefix=t host:examplebucket.oos-cn.ctyunapi.cn x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 x-amz-date:20190220T085955Z
host;x-amz-content-sha256;x-amz-date e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
其中,最后一行是空请求体的hash值。
b.待签名字符串
AWS4-HMAC-SHA256 20190220T085955Z 20190220/cn/s3/aws4_request bc2b6af0cbbe17679b2697f7239b02dc21d4b62fc30e197441cf900d35d3b103 |
2)生成签名密钥
signing key = HMAC-SHA256(HMAC-SHA256(HMAC-SHA256(HMAC-SHA256("AWS4" + "<YourSecretAccessKey>","20190220"),"cn"),"s3"),"aws4_request") |
3)计算后的签名
ce5ef3764d4a34b4e3c81d37b9a310432e5c4bf8bb4722c14877adba882fc559 |
4)Authorization请求头
Authorization: AWS4-HMAC-SHA256 Credential=2a948fd3f00ba0925806/20190220/cn/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=ce5ef3764d4a34b4e3c81d37b9a310432e5c4bf8bb4722c14877adba882fc559 |