全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

KS3签名工具

最近更新时间:2022-12-30 15:47:55

功能介绍

KS3签名工具可用于生成请求签名。您可以在工具页面上填入指定的参数,生成请求签名,以及校验请求签名的正确性,与您计算出的签名作对比,快速定位错误。KS3签名工具为您提供V2和V4两种签名计算方式。

工具地址

V2签名

V4签名

使用方法

V2通过HTTP请求头发送签名示例

1)根据请求类型选择对应的签名计算方式
2)输入密钥信息

在 “密钥信息” 栏中,填写您的密钥信息。如下图所示:

密钥中的信息均为必填项,填写时请确保该信息无误,填写错误将导致您的签名被视为无效签名。API密钥的参数信息获取可参考https://docs.ksyun.com/documents/883

3)输入请求参数信息

主要参数如下表所示:

参数名称 是否必填 描述
HTTP-Verb HTTP 请求方法,包括 GET,POST,PUT,DELETE,OPTIONS,HEAD
Date 请求发起的时间,日期格式:Wed, 11 May 2022 06:25:19 GMT
资源路径 路径以 /bucketName 开头,如:/bucketName 、 /bucketName/b
SubResource 例如:“acl”,“lifecycle”按照字典从小到大排列,以&为分隔符排列
Endpoint 请求访问的域名,若需生成对应请求,Endpoint则为必填,如:ks3-cn-beijing.ksyuncs.com

相关 HTTP 请求参数的详细描述,请参见文档末尾的参数名称详解表。

4)生成签名及查阅过程参数

单击生成签名,即可在右侧查看请求签名结果。如下图所示:

KS3签名工具将分别展示生成的最终签名及计算签名过程中的过程参数。相关过程参数的详细介绍,请参见签名文档:https://docs.ksyun.com/documents/2321

KS3签名工具同时提供生成发送请求curl命令,可通过复制直接使用终端进行请求:

V2通过Post Policy发送签名示例

主要参数如下表所示:

参数名称 是否必填 描述
SecretAccessKey 用于验证用户的密钥
当前时间戳 请求发起的时间,填写自UTC时间1970年01月01号开始的秒数
超时时间 超过该时间请求失败,单位为秒
Conditions Policy文档中对上传内容的验证条件。您在表单中指定的每个表单字段(KSSAccessKeyId、Signature、file、policy除外)以及bucket必须包含在条件列表中。详情请参见Post Policy文档

单击显示Policy文档生成V2签名结果,如下图所示:

Expiration:采用 ISO 8601 UTC 日期格式来指定策略的过期日期,即只能在指定时间之前进行上传,在这个时间之后的上传都将被认为是非法的,KS3将返回403。

如需生成对应curl命令发送请求,请填写表单参数 AccessKey、file、Endpoint:

file为待上传文件的本地绝对路径
可直接复制请求,使用终端发送

V4通过HTTP请求头发送签名示例

1)根据请求类型选择对应的签名计算方式
2)输入密钥信息

在 “密钥信息” 栏中,填写您的密钥信息。如下图所示:

密钥中的信息均为必填项,填写时请确保该信息无误,填写错误将导致您的签名被视为无效签名。API密钥的参数信息获取可参考https://docs.ksyun.com/documents/883

3)输入请求参数信息

主要参数如下表所示:

参数名称 是否必填 描述
HTTPMethod HTTP 请求方法,包括 GET,POST,PUT,DELETE,OPTIONS,HEAD
Date 请求发起的时间,若未填写此项需在Headers中填写x-kss-date,日期格式与此项相同,日期格式:20221108T021948Z
资源路径 路径以 /bucketName 开头,如:/bucketName 、 /bucketName/b
SubResource 例如:“acl”,“lifecycle”按照字典从小到大排列,以&为分隔符排列
Endpoint 请求访问的域名,如:ks3-cn-beijing.ksyuncs.com

相关 HTTP 请求参数的详细描述,请参见文档末尾的参数名称详解表。

V4签名的x-kss-content-sha256表单项支持两种取值,默认为固定值UNSIGNED-PAYLOAD,表示忽略请求正文的哈希校验。

若选择自定义,x-kss-content-sha256的值为请求体经过哈希处理的以小写十六进制字符串表示形式,用以对请求体进行校验,若KS3计算出请求体的哈希值与x-kss-content-sha256请求头的值不同,则会返回错误信息。自定义x-kss-content-sha256有以下两种形式:

  • 计算字符串的x-kss-content-sha256

在此处填写请求体的字符串内容后,生成签名时签名工具会计算出此处字符串的x-kss-content-sha256值,同时将该字符串添加到生成的curl中。

  • 计算实体文件的x-kss-content-sha256

在此处选择文件后,签名工具会计算出该文件的x-kss-content-sha256值,同时也会计算出文件的Content-MD5值并自动填写到Headers表单项中,文件越大计算所需要的时间越长。注意,此处选择的文件并不会被添加到生成的curl中,请求时需要在请求体添加该文件。

4)生成签名及查阅过程参数

单击生成签名,即可在右侧查看请求签名结果。如下图所示:

KS3签名工具将分别展示生成的最终签名及计算签名过程中的过程参数。相关过程参数的详细介绍,请参见签名文档:https://docs.ksyun.com/documents/6890

KS3签名工具同时提供生成发送请求curl命令,可通过复制直接使用终端进行请求:

V4通过Post Policy发送签名示例

主要参数如下表所示:

参数名称 是否必填 描述
AccessKey 用于标识用户
SecretAccessKey 用于验证用户的密钥
当前时间戳 请求发起的时间,填写自UTC时间1970年01月01号开始的秒数
超时时间 超过该时间请求失败,单位为秒
Endpoint 访问域名
Conditions Policy文档中对上传内容的验证条件。您在表单中指定的每个表单字段(KSSAccessKeyId、Signature、file、policy除外)以及bucket必须包含在条件列表中。详情请参见Post Policy文档

单击显示Policy文档生成V4签名Policy必填表单项、Policy文档及签名:

Expiration:采用 ISO 8601 UTC 日期格式来指定策略的过期日期,即只能在指定时间之前进行上传,在这个时间之后的上传都将被认为是非法的,KS3将返回403。

V4签名存在特殊必填表单项,KS3签名工具自动为您计算并添加,详细描述请参见文档末尾特殊表单项表。

生成对应请求

file为待上传文件的本地绝对路径
可直接复制请求,使用终端发送

参数名称详解

参数名称 描述 示例
资源路径 bucketname + key bucket/ddd/xxx
SubResource “acl”,“lifecycle”,“location”,“logging”,“partNumber”,“policy”,“uploadId”,“uploads”,“cors”, “restore”, "tagging, “crr”, “mirror”,“response-content-type”,“response-content-language”,“response-expires”,“response-cache-control”,“response-content-disposition”,“response-content-encoding” 按照字典序,从小到大排列,以&为分隔符排列,即可得到SubResource acl
partNumber=xxx
partNumber={PartNumber}&uploadId={UploadId}
CanonicalizedKssHeaders 所有以x-kss-开头的请求头 x-kss-copy-source:/xxx-test/57M.pdf&x-kss-metadata-directive:COPY&x-kss-storage-class:STANDARD_IA
HttpParameters URI的绝对路径,以域名后面的“?”开头,除SubResource内包含的值外,直到字符串的末尾截止 max-keys=xxxxxx&prefix=abc
file 本地文件的绝对路径 /Users/xxxx/Desktop/fileName
Headers 除"Content-TYPE" , “Content-Length”, “x-kss-content-sha256”, “Authorization” 外的所有请求头 x-kss-storage-class: STANDARD&Range:bytes=0-4
x-kss-content-sha256 有效值:HexEncode(Sha256Hash(RequestPayload)) UNSIGNED-PAYLOAD STREAMING-AWS4-HMAC-SHA256-PAYLOAD
HexEncode(Sha256Hash(RequestPayload)):请求体经过哈希处理的以小写十六进制字符串表示形式
UNSIGNED-PAYLOAD:忽略请求正文的哈希校验
STREAMING-AWS4-HMAC-SHA256-PAYLOAD:chunk传输校验,暂不支持
x-kss-content-sha256:UNSIGNED-PAYLOAD

V4 Policy签名特殊表单项

V4签名计算时所有请求头必须参与计算,且V4请求必传"x-kss-content-sha256"、“Host”、“x-kss-date”请求头,KS3签名工具自动为您添加并参与计算。

V4表单中包含签名需特殊表单项,且必须为确切匹配。生成policy文档时,KS3签名工具已自动为您添加以下特殊表单项:

特殊表单项 描述
x-kss-algorithm 签名算法: KSS4-HMAC-SHA256
x-kss-credential 签名范围:格式为<your-access-key-id>/<date>/<KS3-region>/<KS3>/kss4_request
x-kss-date 请求时间:时间格式为 yyyyMMddTHHmmssZ (X-Kss-Date<=now+15m) 请求的时间戳不能大于(服务器时间戳+15m)

Condition匹配规则

匹配规则 描述
确切匹配 指定acl必须等于public-read。[“acl”: “public-read”]或者[“eq”, “$acl”, “public-read”]
Starts with 指定key必须以2015/01/开头。[“starts-with”, “$key”, “2015/01/”]
通配 指定success_action_redirect可以是任意值(注意:success_action_status不支持通配)。[“starts-with”, “$success_action_redirect”, “”]
指定Content-Length范围 指定上传内容(不止是文件,还有其他表单项)Content-Length的范围为1048579-10485760。[“content-length-range”, 1048579, 10485760]

与AWS S3的兼容性

KS3同时支持KS3 V2/V4和AWS V2/V4签名,通过签名工具右上角的签名方式选择框,可以切换KS3签名和AWS签名,默认为KS3签名。

选择不同的签名方式区别如下:

V2计算签名

当通过HTTP请求头发送签名时,如果选择KS3签名,Authorization的值以KSS开头,并将x-kss开头的请求头加入签名计算;如果选择AWS签名,Authorization的值以AWS开头,并将x-amz开头的请求头加入签名计算。
当通过URL请求参数发送签名时,如果选择KS3签名,参数为KSSAccessKeyId;如果选择AWS签名,参数为AWSAccessKeyId。

V4计算签名

如果选择KS3签名,签名算法为KSS4-HMAC-SHA256;如果选择AWS签名,签名算法为AWS4-HMAC-SHA256。两种签名方式对比如下:

项目 AWS签名 KS3签名
请求头前缀 x-amz- x-kss-
queryString前缀 X-Amz- X-Kss-
协议 AWS4 KSS4
服务名称 s3 ks3
固定值 aws4_request kss4_request
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈