如果我生成的Presigned URL过期了,我应该在做get_headers()
(用PHP)来查看是否引发了403 Forbidden
错误,否则使用相同的URL?或者这是一个坏主意,因为这是一个不必要的GET请求?我应该每次都重新生成一个新的Presigned URL吗?我有点困惑,因为似乎没有太多有关这方面的信息。Amazon S3 - 如何检查预先登记的URL是否过期?
5
A
回答
5
URL有过期时间。
签名版本2
HTT PS://bucket.s3.amazonaws.com/foo.txt AWSAccessKeyId = AKIAABCDEFGHIJK & 过期= 1508608760 &签名= XXXXXXXXXXX
到期以UTC表示时间。
$ date -d @1508608760
Sat Oct 21 17:59:20 UTC 2017
您可以提取价值,并将其与UTC [time()
]当前时间比较,然后决定再生与否。
签名版本4
HTT PS://s3.amazonaws.com/bucket/foo.txt X-AMZ-算法= AWS4-HMAC-SHA256 & X-AMZ-到期= 3600 & X-AMZ-凭证= AKIAJRZXXXXXXXXus - 东 - 1%2Fs3%2Faws4_request & X-AMZ-SignedHeaders =宿主& X-AMZ-日期= 20171021T190750Z & X-AMZ-签名= 8b84ae9b59e9f8a8d7066ecc39e797c8dc29848abcdef61717
X-Amz-Date以ISO 8601格式给出UTC时间。
您可以提取该值,将其转换为epoch/UTC并将其与UTC [time()]中的当前时间进行比较,然后决定是否重新生成。
相关问题
- 1. IIS虚拟目录获取预先登记的URL到期
- 2. AWS在S3存储桶中预先登记的url url
- 3. 如何检查日期是否已过
- 4. 使用JQuery将文件上传到S3,使用预先登记的URL
- 5. 登录到Amazon S3
- 6. 如何检查URL是否包含/预览或子域是CI?
- 7. 在文件下载完成后立即将S3预先签名的URL过期
- 8. AWS S3通过CLI预先签名的URL
- 9. 如何检测Amazon S3中的更改?
- 10. Amazon S3的URL重写
- 11. 如何检查首先是否被跳过?
- 12. 如何检查是否登录失败
- 13. 如何检查我是否登录?
- 14. 如何检查用户是否“登录”?
- 15. 如何检查日期是否过期(PHP)
- 16. 我应该如何检查到期日是否已过期?
- 17. jsf - 如何预先检查selectmanycheckbox项目?
- 18. 如何使用curl使用预先设置的令牌来上传amazon s3?
- 19. 如何检查AWS S3同步是否有任何更改?
- 20. 如何检查URL是否正确
- 21. 如何查询Amazon S3中的数据
- 22. 检查给定的预先遍历是否有效BST
- 23. 如何检查是否有任何变量通过URL传递?
- 24. 在Amazon S3
- 25. 重写Amazon S3静态URL
- 26. 如何检查相对URL是否是PHP中的当前URL?
- 27. 使用Amazon S3的ETag使用情况预签名的URL
- 28. S3签名不匹配对于预先设置的URL
- 29. 如何检查标记是否在xslt
- 30. 检查日期是否过去
真棒解决方案,不知道为什么我没有想到这一点。然而,对我而言,'Amz-Expires'是以秒为单位的到期时间,而'X-Amz-Date'是时间戳 –
@ D-Marc'X-Amz- *'是更新的格式,称为签名版本4 AWS服务在2014年之前推出的地区支持那些加上旧风格的地区,称为签名版本2。 –