2009-04-07 10 views
5

Ich Vermögenswerte S3 mit Ablauf-Header setzen, die erfolgreich durch Ausschüttungen an Cloudfront übergeben bekommen. Anfragen nach dem Ablaufdatum führen jedoch nicht dazu, dass CloudFront eine neue Datei vom Ursprungsserver anfordert.CloudFront-Caching - Wie kann sichergestellt werden, dass CF-Aktualisierungen vom S3-Ursprungsserver nach Ablauf aktualisiert werden?

Ich finde auch, dass die Query-String-Version Token keine frische Asset zwingen, und ich will nicht voll, Dateinamen Versionierung verwenden.

All dies kann auf meine mangelnde Kenntnis der Cache-Control-Header, aber ich fange an zu fragen, ob ich etwas fehlt kritisch darüber, wie Cloudfront arbeiten soll. Die CloudFront-Antworten zeigen Header wie die folgenden an.

Cache-Control: max-age=120 
Expires: Tue, 07 Apr 2009 12:13:26 GMT 
+0

Ich fange an, dies zu prüfen, und Ihr Wissen, dass Query-String-Version Token zu finden, nicht mit Gewalt ein Refresh bin ein bisschen über, ich denke, ich Umschreiben eine Reihe von URL tun könnte, aber würde es vorziehen, nicht zu tun. (Ich würde verwendet es für Variationen von komprimiertem und versioniert CSS & JS aus einer einzigen URL mit unterschiedlichen querystrings zu erzeugen.) – Myster

Antwort

9

Die Zeit vergeht und die Dinge ändern. Wie Tim bemerkt hatte, war die niedrigste Cache-Zeit 24 Stunden, aber im April 2010 gab Amazon bekannt, dass sie Richtlinien zum Caching bis zu einer Stunde anerkennen und befolgen werden.

Ankündigung hier: http://developer.amazonwebservices.com/connect/ann.jspa?annID=655

+3

Und komme 2012 sind wir noch weiter zusammen: [nicht mehr Mindestablaufzeit überhaupt] (http: //aws.amazon.com/about-aws/whats-new/2012/03/19/amazon-cloudfront-lowers-minimum-expiration-period/) :) – Matchu

0

Wie in den Kommentaren von Matchu erwähnt, können Sie nun den Ablauf der Zeit den ganzen Weg hinunter auf Null gesetzt, wenn Sie möchten, die für Entwickler und Testserver ist wirklich schön!

http://aws.amazon.com/about-aws/whats-new/2012/03/19/amazon-cloudfront-lowers-minimum-expiration-period/

Der minimale TTL-Wert als 0 Sekunden kurz sein kann. Sie können dann die TTL für jede Datei festlegen, indem Sie den Cache-Steuerkopf für Ihre Datei im Ursprung festlegen.

Beachten Sie auch what the Amazon docs say:

Nach dem Ablaufdatum und die Uhrzeit in dem Expires-Header übergeben, erhält Cloudfront das Objekt wieder vom Ursprungsserver eine Kantenstelle erhält für das Objekt eine Anfrage jedes Mal.

Wir empfehlen, dass Sie die Cache-Control max-age-Direktive verwenden anstelle der Expires Header-Feld Objekt-Caching zu steuern. Wenn Sie Werte für Cache-Control max-age und für Expires angeben, verwendet CloudFront nur den Wert von max-age.

Verwandte Themen