2014-09-03 6 views
17

Ich habe eine Amazon S3-Bucket mit etwa 300K Elemente darin, die von einer großen Website verwendet werden. Ich möchte den Ablauf aller Objekte, die aus CloudFront bereitgestellt werden, über den S3-Bucket festlegen, damit sie vom Benutzercomputer im Browser zwischengespeichert werden können. Gibt es eine einfache Möglichkeit, das Cache-Steuerelement auf alle s3 Objekte im Bucket AND am wichtigsten setzen einen Standard für den Bucket, so dass alle neuen Elemente hinzugefügt werden auch die Ablaufzeiten und Cache-Control-Header OR kann dies mit CloudFront gemacht werden?Legen Sie ein Standard-Cache-Steuerelement und läuft für den gesamten S3-Bucket/CloudFront

Bisher habe ich eine Reihe von AWS-Dokumente lesen, aber haben nichts gefunden:

Antwort

11

Schritte zum Hinzufügen von Steuer Cache für vorhandene Objekte in Ihrem Eimer

  1. Git Klon https://github.com/s3tools/s3cmd
  2. Ausführen s3cmd --configure (Sie werden nach den zwei Schlüsseln gefragt - Kopieren Sie sie und fügen Sie sie aus Ihrer Bestätigungs-E-Mail oder von Ihrer Amazon-Kontoseite ein. Sei vorsichtig wenn sie kopiert! Sie sind case sensitive und müssen genau eingegeben werden oder Sie erhalten immer wieder Fehler über ungültige Signaturen oder ähnliches. Denken Sie daran, s3: ListAllMyBuckets Berechtigungen für die Schlüssel hinzuzufügen, oder Sie erhalten einen AccessDenied Fehler beim Testen des Zugriffs.)
  3. ./s3cmd --recursive ändern --add-header = "Cache-Control: öffentliche, max-age = 31536000" s3: // your_bucket_name/

für Cloudfront Sie Minimum TTL, Maximale TTL und Standard-TTL für einen Cache behavior.they sind im Grunde die Zeit, für die ein Objekt im Cache gespeichert werden können auf Cloudfront angeben und hat nichts mit dem Hinzufügen eines Verfalls-Header für das Objekt zu tun, dh es hat keine Kopfzeile

Wenn Sie also keine Kopfzeile hinzugefügt haben, wird sie von cloudfront für DEFAULT TTL zwischengespeichert. MEHR INFO READFOLLOWING TABLE http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html#ExpirationDownloadDist

+1

Die Cloudfront-Einstellungen "Minimum TTL", "Maximum TTL" und "Default TTL" das Verhalten der Cloudfront-Cache angeben, nicht, welche Positionen in der HTTP-Antwort gesetzt werden, richtig? – Flimm

+1

Dies scheint nicht den letzten Teil der Frage zu adressieren. Wie setzen Sie den Bucket so, dass neue Dinge hinzugefügt in diesem Ordner oder sogar den gesamten Bucket bekommen dieses Tag hinzugefügt – boatcoder

+1

CloudFront TTLs sagen für wie lange sollten Objekte in Edge Nodes Cache und nichts mit Client-Caching – mac