函数名 | 功能描述 |
UriEncode() | 对字符串进行编码,限制如下:
|
Lowercase() | 将字符串转换成小写。 |
Hex() | 16 进制编码。 |
SHA256Hash() | SHA256 算法。 |
HMAC-SHA256() | HmacSHA256 算法。 |
Trim() | 删除字符串开头和结尾的空白符。 |
Header 名称 | 描述 |
x-tos-content-sha256 | 用于指定客户端上传文件的格式,以及使用的签名方式,取值说明如下:
|
Content-Encoding | 本场景下,Content-Encoding 值建议包含 tos-chunked 时,表示允许使用多分块的方式上传数据,需要配合 x-tos-content-sha256 使用。 说明 在保存对象时,TOS 不会将 tos-chunked 属性作为用户数据保存,下载对象时也不会在 Content-Encoding 返回 tos-chunked 属性。 |
x-tos-trailer | 表示 Trailing Header 中校验和使用的算法,取值仅为 x-tos-hash-crc64ecma ,需要配合 x-tos-content-sha256、Content-Encoding: tos-chunked 使用。 |
x-tos-decoded-content-length | 用于服务端校验接收到的有效数据长度是否正确。可选,设置为原始文件大小。 说明 设置 x-tos-decoded-content-length 值时,不包含由多分块编码引入的格式数据、签名数据、Trailing Header 数据的长度。例如:要上传一个 4GB 的文件,将值设置为 4294967296。 |
Content-Length | 可选,HTTP 请求体的长度。 说明
|
参数 | 描述 |
HTTPMethod | HTTP 请求的 Method,如 PUT、GET、HEAD、DELETE 等。 |
CanonicalURI | UriEncode(<PATH>)
|
CanonicalQueryString | 请求中 Query 参数的编码格式: UriEncode(<QueryParam1>) + '=' + UriEncode(<value>) + '&' + UriEncode(<QueryParam2>) + '=' + UriEncode(<value>) + '&' + ... UriEncode(<QueryParamN>) + '=' + UriEncode(<value>) 说明
|
CanonicalHeaders | 请求中 Header 的编码格式: Lowercase(<HeaderName1>) + ':' + Trim(<value>) + '\n' Lowercase(<HeaderName2>) + ':' + Trim(<value>) + '\n' ... Lowercase(<HeaderNameN>) +':' + Trim(<value>) + '\n' 说明
|
SignedHeaders | 指定参与签名的 Header: Lowercase(<HeaderName1>) + ';' + Lowercase(<HeaderName2>) + ... + Lowercase(<HeaderNameN>) 说明
|
HashedPayload | 常量:STREAMING-TOS4-HMAC-SHA256-PAYLOAD-TRAILER |
参数 | 说明 |
Algorithm | 签名的算法,目前仅支持 HMAC-SHA256 的签名算法。 |
RequestDate | 请求 UTC 时间,请使用如下格式:yyyyMMddTHHmmssZ。 |
CredentialScope | 凭证范围值,格式为:yyyyMMdd/region/tos/request。 |
CanonicalRequest | 上一小节正规化请求的结果。 |
参数 | 值 |
桶名 | examplebucket |
对象名 | exampleobject |
区域 | cn-beijing |
时间 | Sat, 1 Jan 2022 00:00:00 GMT |
AccessKeyId | testAK |
SecretAccessKey | testSK |
示例 | 值 |
签名字符串 (StringToSign) | TOS4-HMAC-SHA256-PAYLOAD 20220101T000000Z 20220101/cn-beijing/tos/request d40b66cf0054d1642843670d10fa095e1609c7896f25df217770b0abe717693b e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bf718b6f653bebc184e1479f1935b8da974d701b893afcf49e701f3e2f9f9c5a |
签名 | b474d8862b1487a5145d686f57f013e54db672cee1c953b3010fb58501ef5aa2 |
分块数据 | 10000;chunk-signature=b474d8862b1487a5145d686f57f013e54db672cee1c953b3010fb58501ef5aa2 <65536-bytes> |
示例 | 值 |
签名字符串 (StringToSign) | TOS4-HMAC-SHA256-PAYLOAD 20220101T000000Z 20220101/cn-beijing/tos/request b474d8862b1487a5145d686f57f013e54db672cee1c953b3010fb58501ef5aa2 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 41edece42d63e8d9bf515a9ba6932e1c20cbc9f5a5d134645adb5db1b9737ea3 |
签名 | 041169d545f3f4a02fe2e3d066bfb1798dd5f3417ae8cecd0e43690aafbe79d1 |
数据 | 400;chunk-signature=041169d545f3f4a02fe2e3d066bfb1798dd5f3417ae8cecd0e43690aafbe79d1 <1024 bytes> |
示例 | 值 |
StringToSign | TOS4-HMAC-SHA256-PAYLOAD 20220101T000000Z 20220101/cn-beijing/tos/request 041169d545f3f4a02fe2e3d066bfb1798dd5f3417ae8cecd0e43690aafbe79d1 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
签名 | e05ab64fe1dfdbf0b5870abbaabdb063c371d4e96f2767e6934d90529c5ae850 |
数据 | 0;chunk-signature=e05ab64fe1dfdbf0b5870abbaabdb063c371d4e96f2767e6934d90529c5ae850 |
示例 | 值 |
StringToSign | TOS4-HMAC-SHA256-TRAILER 20220101T000000Z 20220101/cn-beijing/tos/request e05ab64fe1dfdbf0b5870abbaabdb063c371d4e96f2767e6934d90529c5ae850 2e4ab969aa65b1ad6def2db10e4d3a8260683d194dbaf757f90e8a37960a4b3c |
签名 | 41e14ac611e27a8bb3d66c3bad6856f209297767d5dd4fc87d8fa9e422e03faf |
数据 | x-tos-hash-crc64ecma:smtwW8C72Y8= x-tos-trailer-signature:41e14ac611e27a8bb3d66c3bad6856f209297767d5dd4fc87d8fa9e422e03faf |