我在尝试访问 Amazon Simple Storage Service(Amazon S3)中的一个对象时收到错误消息“Request has expired”(请求已过期)。 如何修复此问题?
解决方法
如果您尝试访问的预签名 URL 超过了指定的 URL 到期日期,则 Amazon S3 会返回此错误消息。
例如,在以下响应中,预签名 URL 的到期日期是 2022 年 10 月 28 日。如果在此日期之后尝试访问该 URL,则会收到错误消息。
<Error>
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
<Expires>2022-10-28T07:13:14Z</Expires>
<ServerTime>2022-10-28T20:03:02Z</ServerTime>
<RequestId>87E1D2CFAAA7F9A6</RequestId>
<HostId>
A9BEluTV2hk3ltdFkixvQFa/yUBfUSgDjptwphKze+jXR6tYbpHCx8Z7y6WTfxu3rS4cGk5/WTQ=
</HostId>
</Error>
要解决此问题,对象的拥有者必须生成一个带有新的到期日期的新预签名 URL。如果您拥有该对象,请参阅预签名或使用预签名 URL 共享对象以了解更多信息。
注意:预签名 URL 可能在配置的到期日期之前到期。这是因为 AWS Identity and Access Management(AWS IAM)实体 STS 令牌在预签名 URL 到期日期之前已到期。有关 STS 会话持续时间的更多信息,请参阅比较 AWS STS API 操作。
相关信息
生成用于上传对象的预签名 URL