Wie Keep Alive-Verbindung in AWS S3 oder CloudFront zu aktivieren? Ich habe Bilder in S3 hochgeladen und festgestellt, dass die URLs keine Verbindung aufrecht erhalten haben. Sie können nicht von der Client-Anwendung zwischengespeichert werden, obwohl ich jeder Bilddatei Cache-Control-Header hinzugefügt habe.Wie Keep Alive-Verbindung in AWS S3 oder CloudFront aktivieren?
Antwort
Von dem Tag Wiki für Keep-Alive-:
Ein Merkmal von HTTP, wo die gleichen Verbindung für mehr Anfragen verwendet wird, mit mehreren Ressourcen Herunterladen von Web-Seiten zu beschleunigen.
Ich bin mir keiner Beziehung bewusst, dass dies Verhalten zwischenspeichern muss. Normalerweise sehe ich Erwähnungen von Keep-Alive-Headern in Bezug auf Long-Polling, was keinen Sinn ergeben würde, auf S3 zu aktivieren.
Ich denke, Sie verknüpfen Keep-Alive-Header fälschlicherweise mit der Fähigkeit Ihres Browsers, statischen Inhalt zwischenzuspeichern. Die Cache-Control-Header sollten alles sein, was zum Zwischenspeichern von statischem Inhalt im Browser benötigt wird.
Verifizieren Sie, dass die Antwort von CloudFront die Cache-Steuerkopfzeilen enthält, die Sie für die S3-Objekte festgelegt haben? Möglicherweise müssen Sie den CloudFront-Cache ungültig machen, nachdem Sie die Header aktualisiert haben.
Im Zusammenhang mit Ihrer Frage, ich denke, das Problem besteht in der richtigen TTL (> 0) zu Ihrem Ursprung/Verhaltensweisen in Cloudfront.
Auch AWS Cloudfront (ab 30. März 2017) enables you to set up custom read and keep-alive timeouts für benutzerdefinierte Herkunft.
- 1. AWS Cloudfront, die zu S3-Bucket umleitet
- 2. Einzelseitenanwendung in AWS CloudFront
- 3. Aws CloudFront Fehlerhafte Richtlinie
- 4. AWS Cloudfront-Verhalten funktioniert nicht wie erwartet
- 5. AWS: Mit S3 und Cloudfront mit Wordpress in EC2 installiert
- 6. Cross-Domain-Problem :: mit aws ec2, s3 und cloudfront
- 7. Medien herunterladen/upload in S3 + Cloudfront
- 8. AWS Cloudfront URL umschreiben
- 9. SSL für S3 aktivieren, serviere index.html standardmäßig
- 10. AWS CloudFront Einschränkung
- 11. AWS Cloudfront - Cacheverhalten - Pfadmusterformat
- 12. Knoten js Server auf Amazon S3 & Cloudfront
- 13. Aktivierung von POST/PUT/DELETE in AWS CloudFront?
- 14. Verwenden der Serverseite includes oder ssi, AWS S3
- 15. Schienen konfigurieren Carrierwave mit S3 und Cloudfront
- 16. Zugang AWS S3 mit benutzerdefinierten Domain
- 17. Wie private Dateien mit S3, Cloudfront zu installieren und Carrierwave
- 18. müssen nicht www in www in aws s3 bucket und cloudfront neu schreiben
- 19. CloudFront: Kostenvoranschlag
- 20. Sendet Amazon S3 Ungültigmachungssignale an CloudFront?
- 21. Überstehen eines Neustarts mit AWS CloudFront
- 22. AWS Cloudfront Signiertes Cookie Lokales Setup
- 23. Cloudfront leitet zum S3-Endpunkt um
- 24. Android und AWS S3
- 25. Bereitstellen einer eckigen App auf aws cloudfront
- 26. AWS CLI CloudFront alle Dateien ungültig machen
- 27. Streaming Video - jwplayer, amazon s3 und cloudfront
- 28. Amazon S3 und Cloudfront - Publish Datei hochgeladen als gehasht Dateiname
- 29. Rails S3 - CloudFront 401 Fehlerauslöser Basic Auth Popup
- 30. Carrierwave mit S3 und Cloudfront zeigt keine Bilder an
Keep-Alive-Verbindungen sind die Norm - sie ermöglichen es dem Browser, die nächste Anforderung ohne den Overhead einer neuen TCP-Verbindung zu senden. CloudFront legt einen expliziten 'Connection: keep-alive'-Header fest; S3 fügt überhaupt keinen 'Connection:' Header hinzu, was [in HTTP/1.1 als gleichwertiges Verhalten betrachtet werden sollte] (http://stackoverflow.com/a/7927599/1695906) - keep-alive ist aktiviert, wenn 'Connection : close' wird nicht gesendet. OP kann die Tatsache beobachten, dass S3 den Header nicht zurückgibt und davon ausgeht, dass dies signifikant ist, obwohl dies tatsächlich nicht der Fall ist. Die Ursache für ein Browser-Caching-Problem liegt an anderer Stelle. –
Hier ist eine der Bild-URLs: https://s3-ap-southeast-1.amazonaws.com/mysamplestest/ad516503a11cd5ca435acc9bb6523536.png Ich habe einen REST-Client verwendet, um auf diese URL zuzugreifen. Es gibt keine Verbindung: Keep-Alive-Header. Dies ist jedoch eine URL der BBC-Website, die auch in S3 gespeichert ist. http://ichef.bbci.co.uk/bbcle/images/width/live/p0/3h/c2/p03hc212.jpg/624. Sie können sehen, dass es Connection: Keep-Alive-Header bekam. – Des
Wenn die URL keine Verbindung: Keep-Alive-Header, kann das Bild nicht zwischengespeichert werden. Ich schreibe eine iOS-App, die auf die Bilder in meinem S3-Bucket zugreift. Alle Bilddateien konnten nicht zwischengespeichert werden. Ich habe viel Zeit darauf verwendet, die Probleme zu finden. Schließlich erkannte ich, dass es sich um Connection handelt: Keep-Alive-Header. Ich wundere mich, wie man das S3 oder CloudFront konfiguriert, um es zu reparieren. Vielen Dank – Des