您可以在 URL 的查询参数中增加签名信息。该 URL 中包含 AK、有效期、资源、操作、签名等信息,任何使用该 URL 的人在有效期内都可以执行该 URL 对应的操作。这种方法称作预签名。
https://bucketname.tos-cn-beijing.volces.com/object ?X-Tos-Algorithm=TOS4-HMAC-SHA256 &X-Tos-Credential=<access-key-id>/<YYYYMMDD>/<region>/tos/request &X-Tos-Date=20130721T201207Z &X-Tos-Expires=86400 &X-Tos-SignedHeaders=host &X-Tos-Signature=<signature> &X-Tos-Security-Token=<security-token>
参数 | 描述 | 是否必选 |
---|---|---|
X-Tos-Algorithm | 用于标记签名的版本及算法,当前只支持 TOS4-HMAC-SHA256。 | 是 |
X-Tos-Credential | 提供 AccessKey ID、日期,区域和服务信息。 格式为 | 是 |
X-Tos-Date | 当前请求时间(UTC 时间),格式为 | 是 |
X-Tos-Expires | 该 URL 的有效期,单位为秒。该值为整数,最小为1,最大为604800(7 天),即签名有效期最长为 7 天。 | 是 |
X-Tos-SignedHeaders | 列出用于计算签名的 Header,说明如下:
| 是 |
X-Tos-Signature | 计算出的签名。 | |
X-Tos-Security-Token | 使用临时 AK/SK 鉴权时,必须加上该头域,值为SecurityToken。 | 否 |
URL 计算签名方式与 Header 签名,除了构造规范化请求(CanonicalRequest)上有所差异,其他流程都是相同的,差异点如下:
X-Tos-Signature
参数。X-Tos-Security-Token
参数。以下载对象为例,相关信息如下。
参数 | 值 |
---|---|
桶名 | examplebucket |
对象名 | exampleobject |
区域 | cn-beijing |
时间 | Sat, 1 Jan 2022 00:00:00 GMT |
AccessKeyId | testAK |
SecretAccessKey | testSK |
GET /exampleobject X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=testAK%2F20220101%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20220101T000000Z&X-Tos-Expires=86400&X-Tos-SignedHeaders=host host:examplebucket.tos-cn-beijing.volces.com host UNSIGNED-PAYLOAD
TOS4-HMAC-SHA256 20220101T000000Z 20220101/cn-beijing/tos/request b0cda3030fc2db31d57af22c2a7ab4229434edff63f0982db8a3fb99b190677d
HMAC-SHA256(HMAC-SHA256(HMAC-SHA256(HMAC-SHA256("testSK", "20220101"), "cn-beijing"), "tos"), "request")
353aa55583eceb222aad4bdcb70d4045a202a4af9a3096f25a656b82c8ec2f56
https://examplebucket.tos-cn-beijing.volces.com/exampleobject?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=testAK%2F20220101%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20220101T000000Z&X-Tos-Expires=86400&X-Tos-SignedHeaders=host&X-Tos-Signature=353aa55583eceb222aad4bdcb70d4045a202a4af9a3096f25a656b82c8ec2f56