文档

0002-00000418

更新时间:

问题描述

请求URL签名已过期。

问题原因

您发起了Amazon S3兼容的V4版本请求,但是请求中的签名已过期。

问题示例

您发起了在URL请求参数中携带签名的请求,但是OSS接收到请求的时间超过了请求参数中X-Amz-Date参数与X-Amz-Expires参数指定的超时时间。

GET /test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AK***/20221220/us-east-1/s3/aws4_request&X-Amz-Date=20221220T084818Z86400&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=ab2***st HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
x-oss-s3-compat: true
  • X-Amz-Expires参数用于指定签名URL的有效时长,格式为Unix时间戳,取值范围是[0, 604800]。

  • X-Amz-Date参数用于指定客户端发起签名URL的时间。

如果OSS接收到请求的时间已超出签名URL中X-Amz-Date以及X-Amz-Expires参数指定的时间,则判断为URL签名已过期。

解决方案

重新生成签名URL。重新生成签名URL时,建议适当调整X-Amz-Expires参数的取值,以延长签名URL的有效时长。

推荐使用Amazon S3 SDK发起请求。更多信息,请参见使用Amazon S3 SDK访问OSS