gpt4 book ai didi

php - Amazon S3 - 如何检查预签名 URL 是否过期?

转载 作者:可可西里 更新时间:2023-11-01 12:31:43 26 4
gpt4 key购买 nike

如果我生成的预签名 URL 已过期,我是否应该执行 get_headers()(在 PHP 中)以查看是否抛出 403 Forbidden 错误,否则使用同一个网址?或者这是一个坏主意,因为它是一个不必要的 GET 请求?我应该总是每次都重新生成一个新的预签名 URL 吗?我有点困惑,因为似乎没有太多关于此的信息。

最佳答案

URL 有它的过期时间。

签名版本 2

htt ps://bucket.s3.amazonaws.com/foo.txt?AWSAccessKeyId=AKIAABCDEFGHIJK&Expires=1508608760&Signature=xxxxxxxxxxx

Expires 以 Unix 时间戳(以秒为单位)和协调世界时 (UTC) 给出时间。

$ date -d @1508608760
Sat Oct 21 17:59:20 UTC 2017

您可以提取该值并将其与 UTC [time()] 中的当前时间进行比较,然后决定是否重新生成。


签名版本 4

https://s3.amazonaws.com/bucket/foo.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600&X-Amz-Credential=AKIAJRZXXXXXXXXus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Date=20171021T190750Z&X-Amz-Signature=8b84ae9b59e9f8a8d7066ecc39e797c8dc29848abcdef61717

X-Amz-Date 以 ISO 8601 格式提供 UTC 时间。

您可以提取值,将其转换为epoch/UTC并与UTC [time()]中的当前时间进行比较,然后决定是否重新生成。

关于php - Amazon S3 - 如何检查预签名 URL 是否过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46865679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com