Ich versuche herauszufinden, ob ich Browser dazu bringen kann, Bilder mit signierten URLs zwischenzuspeichern.Zwischenspeichern von Bildern mit verschiedenen Abfragezeichenfolgen (S3 signierte URLs)
Ich möchte eine neue signierte URL für jede Anfrage (dasselbe Bild, aber mit einer aktualisierten Signatur) generieren, aber der Browser nicht jedes Mal erneut herunterladen.
Angenommen, die cache-bezogenen Header sind korrekt eingestellt und die URL ist die gleiche wie die Abfragezeichenfolge. Gibt es eine Möglichkeit, den Browser zwischenzuspeichern?
Die Urls würde in etwa so aussehen:
http://example.s3.amazonaws.com/magic.jpg?WSAccessKeyId=stuff&Signature=stuff&Expires=1276297463
http://example.s3.amazonaws.com/magic.jpg?WSAccessKeyId=stuff&Signature=stuff&Expires=1276297500
Wir planen, die E-Tags setzen eine MD5-Summe zu sein, so wird es zumindest herausfinden es das gleiche Bild ist an diesem Punkt?
Meine andere Möglichkeit besteht darin, den Überblick zu behalten, wann die letzte URL ausgegeben wurde, und dann neue auszugeben, bevor die alten ablaufen, aber ich würde mich lieber nicht mit den Sitzungsinformationen beschäftigen.
Wissen Sie, ob es das e-tag überprüft und nicht noch einmal herunterlädt? –
Der ETag-Header wird nur vom Browser an den Server gesendet, wenn er die Datei im Cache findet (und wenn die ursprüngliche Datei einen ETag-Wert hatte). Wenn es also nicht in seinem Cache gefunden werden kann (was nicht der Fall ist, wenn sich die URL geändert hat), gibt es keinen ETag-Wert, der in der Anfrage gesendet werden kann. –
Die URL-Rewrite-Regel würde die S3-Signatur dann wieder unbrauchbar machen, da der Webserver automatisch eine nicht abgelaufene Verbindung bereitstellen würde. Dann könnten Sie Dateien in S3 auch als "public" markieren. (Dann ist keine Signatur erforderlich, um auf die Dateien zuzugreifen) – Tarnschaf