AWS S3 Presign Url 总是同时过期?

AWS S3 Presign Url always expiring at the same time?

我生成一个前置符号 url 来访问 S3 中的对象。此 url 设置为 1 小时后过期。 它几个月来一直工作正常,但突然停止工作。 对于我创建的每个 url,该请求的到期时间总是相同的,请参阅:

<Error>
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
<X-Amz-Expires>3599</X-Amz-Expires>
<Expires>2018-05-27T22:56:29Z</Expires>
<ServerTime>2018-05-28T00:20:17Z</ServerTime>
<RequestId>xxx</RequestId>
<HostId>yyy</HostId>
</Error>

任何帮助都会很棒!谢谢!

预签名 URL 从用于构建 URL.

访问密钥 继承其权限

例如,假设我有 IAM 用户 凭证。 IAM 用户有访问密钥和秘密密钥。我可以使用这些凭据生成预签名 URL.

预签名 URL 基本上表示此特定用户授权在有限的时间内访问特定对象。

但是,如果我访问该对象的权限被删除,那么我将无法生成预签名 URL 来访问该对象。 (这只是我权限的限时子分配。)

鉴于您的代码过去可以可靠地工作但现在不能,我建议您应该 调查与用于生成预签名 URL.

使用 Signature V4 创建的已签名 URL 在您生成它们时加上过期时间不会过期。它们在您的代码 声明 生成时过期,您可以在 URL.

X-Amz-Date 字段中找到它们

将此值与 UTC 中的当前时间进行比较。

此错误表明生成它们的服务器上的时钟有误,或者,如果该服务器上的时钟未设置为 UTC,则系统时钟上的时区可能有误。