Wenn ich eine generierte Presigned URL habe, die abgelaufen ist, sollte ich get_headers()
(in PHP) tun, um zu sehen, ob ein 403 Forbidden
Fehler geworfen wird, sonst verwende die gleiche URL? Oder ist das eine schlechte Idee, weil es eine unnötige GET-Anfrage ist? Sollte ich immer nur eine neue Presigned URL immer neu generieren? Ich bin ein wenig verwirrt, weil es nicht viele Informationen darüber zu geben scheint.Amazon S3 - Wie überprüft man, ob vorsortierte URL abgelaufen ist?
Antwort
Die URL hat die Zeit, zu der sie abläuft.
Signatur Version 2
htt ps: //bucket.s3.amazonaws.com/foo.txt AWSAccessKeyId = AKIAABCDEFGHIJK & Verfällt = 1508608760 & Signature = xxxxxxxxxxx
Läuft ab gibt die Zeit in UTC an.
$ date -d @1508608760
Sat Oct 21 17:59:20 UTC 2017
können Sie den Wert extrahieren und sie mit der aktuellen Zeit in UTC vergleichen [time()
], dann entscheiden, zu regenerieren oder nicht.
Signatur Version 4
htt ps: //s3.amazonaws.com/bucket/foo.txt X-Amz-Algorithmus = AWS4-HMAC-SHA256 & X-Amz-Verfällt = 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 gibt die UTC-Zeit im ISO 8601-Format an.
Sie können den Wert extrahieren, in epoch/UTC konvertieren und mit der aktuellen Zeit in UTC [time()] vergleichen, dann entscheiden Sie sich für die Neugenerierung oder nicht.
- 1. Wie überprüft man, ob ein Datum abgelaufen ist (PHP)
- 2. wie überprüft man, ob eine Sekunde abgelaufen ist C++
- 3. Amazon S3 URL Rewrite
- 4. Wie überprüft man, ob Cookies im Cookiecontainer abgelaufen sind?
- 5. Wie Spring Framework überprüft, ob das Benutzerkonto abgelaufen ist?
- 6. Wie überprüft man, ob die URL zur Datenbank gültig ist?
- 7. Wie überprüft man, ob einem Benutzer eine URL zugewiesen ist?
- 8. Prüfen, ob die Datei auf Amazon s3 Signierte URL
- 9. Wie überprüft man, ob boto3 S3.Client.upload_fileobj erfolgreich war?
- 10. Wie überprüft man, ob NSURLSessionDataTask abgeschlossen ist?
- 11. Wie überprüft man die Sitzung in Java abgelaufen ist?
- 12. Wie überprüft man, ob ein Datum vergangen ist
- 13. Wie überprüft man, ob GoogleApiClient verbunden ist?
- 14. Wie überprüft man, ob NumLock aktiviert ist
- 15. Wie überprüft man, ob TextView leer ist?
- 16. Wie überprüft man, ob "Radiobutton" aktiviert ist?
- 17. Wie überprüft man, ob Javascript deaktiviert ist?
- 18. Wie überprüft man, ob MQ verbunden ist
- 19. Wie überprüft man, ob ContentPlaceHolder leer ist?
- 20. Wie überprüft man, ob ReflectionProperty zugänglich ist?
- 21. Wie überprüft man, ob Bootstrap verfügbar ist?
- 22. Wie überprüft man, ob die Schnittstelle ist
- 23. Wie überprüft man, ob IndexPath gültig ist?
- 24. Wie überprüft man, ob mithril.js geladen ist?
- 25. Wie überprüft man, ob Suhosin installiert ist?
- 26. Wie überprüft man, ob Flash installiert ist?
- 27. Wie überprüft man, ob die Liferay-Sitzung in Javascript abgelaufen ist?
- 28. Wie überprüft man, ob für jedes Jahr ein Datum erreicht oder abgelaufen ist
- 29. Wie überprüft man, ob eine Nachricht in activemq im Producer abgelaufen ist
- 30. Wie überprüft man, ob Sitzung in asp.net abgelaufen ist oder nicht
Tolle Lösung, weiß nicht, warum ich nicht daran gedacht hatte. Für mich ist 'Amz-Expires' die Ablaufzeit in Sekunden, während' X-Amz-Date' der Zeitstempel ist. –
@ D-Marc 'X-Amz- *' ist das neuere Format, genannt Signature Version 4 Regionen, in denen AWS-Dienste vor etwa 2014 eingeführt wurden, unterstützen diese und den älteren Stil, Signature Version 2 genannt. –