我在尝试访问 S3 对象时遇到 "Request has expired" 错误。 为什么?

1 分钟阅读
0

我在尝试访问 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

AWS 官方
AWS 官方已更新 1 年前