Mit Amazon S3 und Cloudfront können abgelaufene Header und Cache-Ablauf am besten festgelegt werden

7

Wir haben einen riesigen Eimer mit Fotos auf s3. Wir fügen dies täglich hinzu und entfernen es, aber es enthält derzeit Millionen von Fotos, die wir nicht umschreiben oder aktualisieren möchten, wenn dies möglich ist.

Wir haben für diese vorhandenen Fotos keine abgelaufenen Header festgelegt.

Ich habe gerade die Wolkenfront hochgedreht und sie auf unseren Eimer gerichtet.

Ich habe jetzt zwei Ziele:

  1. Verwenden Sie die Versionierung, damit ältere Fotos in Cloudfront ablaufen.
  2. Setzen Sie irgendwo Far Future Expire-Header (S3, CloudFront), um die Browser darüber zu informieren, dass sie diese Dateien für immer behalten sollen.

Dies wirft einige Fragen auf. Kann ich beide oben genannten Ziele mit einer Einstellung erreichen?

Kann ich diese Einstellung (en) auf Bucket-Ebene, auf Ebene einzelner Fotos oder auf Cloudfront-Ebene vornehmen?

Es wäre vorzuziehen, in der Lage zu sein, einen Cache zu erstellen, und die Header-Einstellungen für die Zukunft laufen auf Cloudfront- oder S3-Bucket-Ebene ab, und sich nicht um diese Einstellungen auf einer einzelnen Fotoebene zu kümmern, insbesondere angesichts der Tatsache, dass wir Millionen von Fotos ohne diese haben Einstellungen bereits in s3.

Vielen Dank für jede Hilfe, sehr geschätzt!

Tom DeMille
quelle
Skript zum rekursiven Hinzufügen des Cache-Control-Headers zu einem Bucket / Ordner - stackoverflow.com/a/30225271/846727
Kunal

Antworten:

6

Sie fügen leider ein Cache-Steuerelement auf der Ebene der einzelnen Elemente in S3 hinzu. Ich weiß nicht, ob Sie dies auf Eimerebene tun können.

Sie können dies jedoch für mehrere Elemente gleichzeitig mit einem Drittanbieter-Tool wie CloudBerry Explorer tun

Ich habe dies für einige Elemente getan. Hier ist ein Screenshot von der AWS-Webkonsole:

Geben Sie hier die Bildbeschreibung ein

Der Wert ist in Sekunden.

S3 unterstützt auch die Versionierung, aber ich persönlich habe nicht damit gespielt.

In Bezug auf Cloudfront müssen Sie nur damit herumspielen, um alte Versionen von Dokumenten ungültig zu machen . Das heißt, Sie haben die Datei index.html geändert und benötigen Cloudfront, um die (jetzt) ​​veraltete Kopie sofort zu löschen. Wenn Sie die Datei ungültig machen, erhalten Benutzer, die die Site durchsuchen, die aktualisierte Kopie von S3.

Snellgrove
quelle