上云无忧 > 文档中心 > 天翼云对象存储(OOS经典版)I型用户签名验证(V4)使用Authorization请求头验证示例
对象存储
天翼云对象存储(OOS经典版)I型用户签名验证(V4)使用Authorization请求头验证示例

文档简介:
以下是使用V4签名的示例。示例中使用的访问密钥如下: 参数 值 AWSAccessKeyId 2a948fd3f00ba0925806 AWSSecretAccessKey ef2017c2e5ffa0b1761717ecbca021da16501384
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

示例


以下是使用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

相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部