问题描述
URL签名中的过期时间无效。
问题原因
您采用URL签名的方式发送请求,但是URL参数中的Expires
或x-oss-expires
取值无效。
问题示例
使用V1版本签名发起请求
使用V1版本签名发起请求时,通过
Expires
字段指定URL过期时间,但该字段的取值无效。GET /test.txt?OSSAccessKeyId=nz2p****&Expires=abc&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv**** HTTP/1.0 Date: Tue, 20 Dec 2022 08:48:18 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com
使用V2版本签名发起请求
使用V2版本签名发起请求时,通过
x-oss-expires
字段指定URL过期时间,但该字段的取值无效。GET /test.txt?x-oss-signature-version=OSS2&x-oss-expires=abc&x-oss-signature=abc***&x-oss-access-key-id=asfd*** HTTP/1.0 Date: Tue, 20 Dec 2022 08:48:18 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com
URL过期时间格式为Unix时间戳(自UTC时间1970年01月01号开始的秒数)。如果OSS接收到该URL请求的时间晚于签名中包含的Expires
或x-oss-expires
参数时,则返回请求超时的错误码。
解决方案
确保Expires
字段或x-oss-expires
字段存在且值正确。例如,当前时间是1141889060,开发者希望创建一个60秒后自动失效的URL,则可以设置Expires
时间为1141889120。以V1版本签名发起请求为例:
GET /test.txt?OSSAccessKeyId=nz2p****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv**** HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
更多信息,请参见在URL中包含签名。
说明
推荐采用SDK的方式发起请求,可以免去手动签名的过程。更多信息,请参见使用阿里云SDK发起请求概述。
文档内容是否对您有帮助?