Scenariusz:Browser (Chrome) dokonuje przeglądu aktywów nie cache z CloudFront
I Skonfiguruj distribuition CloudFront z niestandardowym pochodzenia (mój serwer) do progresywnego strumienia lista plików wideo MP4.
Te pliki są zapętlone i odtwarzane przez interfejs API natywnego interfejsu HTML5 Chrome. Za każdym razem, gdy film się kończy, Chrome przesyła kolejne żądanie do pliku.
Podczas odtwarzania pliku z mojego serwera, Chrome zwraca
Status Code:206 Partial Content (from cache)
na każde żądanie, podczas gdy gra ten sam plik z CloudFront, Chrome nigdy nie buforuje plik i utrzymuje go przy każdym pobraniu życzenie!
Są nagłówki odpowiedzi od Amazon CloudFront w Chrome:
HTTP/1.0 206 Partial Content
Date: Mon, 19 Mar 2012 19:47:44 GMT
Server: Apache
Last-Modified: Mon, 19 Mar 2012 12:35:37 GMT
ETag: "a78e87ba-335d8e-4bb97cb9f887f"
Accept-Ranges: bytes
Content-Type: video/mp4
Content-Range: bytes 4228-3366285/3366286
Content-Length: 3362058
Age: 3819
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: xxxxxx
Via: 1.0 xxxxxx.cloudfront.net (CloudFront)
Connection: keep-alive
Response Nagłówki w Chrome z tego samego pliku z mojego serwera (pochodzenie):
HTTP/1.1 206 Partial Content
Date: Mon, 19 Mar 2012 20:50:40 GMT
Server: Apache
Last-Modified: Mon, 19 Mar 2012 12:35:37 GMT
ETag: "a78e87ba-335d8e-4bb97cb9f887f"
Accept-Ranges: bytes
Content-Length: 3366286
Content-Range: bytes 0-3366285/3366286
Keep-Alive: timeout=2, max=256
Connection: Keep-Alive
Content-Type: video/mp4
Am I czegoś brakuje? Może być przyczyną braku nagłówka Keep-Alive
z odpowiedzi CloudFront? a może w innej wersji protokołu HTTP (1.0 vs 1.1)?
UPDATE:
Dodałem też wygasa i Cache-Sterowanie nagłówki, nic się nie zmieniło. To niestety sprawia, że niezauważalne jest łączenie API api HTML5 i Amazon CloudFront.
Zrzut ekranu od inspektora, jak widać plik zostanie ponownie pobrane na każdej pętli: http://i.imgur.com/0VyZD.jpg
To kolejny zrzut ekranu z załadowanego pliku z serwera lokalnego: http://i.imgur.com/go1zN.jpg
UPDATE 2:
Wygląda na to, że nie jest to ściśle związane z CloudFront. Po różnych próbach wydaje Chrome nie buforuje film jeśli
1) plik jest większy niż 2Mb 2) Nagłówek Content-Range
nie zaczynają się od 0 (patrz zróżnicowanych przykład powyżej)
I myślę dotyczy tylko natywnego interfejsu API wideo HTML5 i jego statusu częściowej zawartości 206.
FTR, zgłoszone do AWS CF w https://forums.aws.amazon.com/thread.jspa?threadID=96247 – Ami
Czy istnieje sposób obejścia tego problemu po stronie klienta? Nienawidzę, jak wszystkie moje filmy nie będą przechowywane w pamięci podręcznej. –
Zobacz także: https://forums.aws.amazon.com/thread.jspa?threadID=124998 –