Ich streame Dateien mit einer CloudFront-Webdistribution über einen S3-Speicher mit privaten Dateien (CloudFront hat Zugriff darauf). Ich verwende AWS WAF, um zu überprüfen, ob die Anfrage von meiner Domain kommt (mit dem Header referer
), um den direkten Download der Audiodatei durch einfaches Kopieren und Einfügen ihrer URL zu vermeiden. Um die Audiodateien abzuspielen, verwende ich SoundManager2.Mobile Streaming funktioniert nicht mit WAF + CloudFront + S3 (funktioniert auf Desktop-Browsern!)
Das Problem: Es funktioniert wie ein Charme auf Desktop-Browsern (Chrome, Firefox und Safari), aber der Stream nie auf dem Handy spielen (getestet auf iOS und Android). Ich kann nicht verstehen warum.
**General**
Request URL:https://XXXXXXXXX.cloudfront.net/uploads/track/s3_file/XXXXX/XXXXXXXXXXXX.mp3
Request Method:GET
Status Code:206 Partial Content
Remote Address:XX.XX.XXX.X:XXX
**Response Headers**
Accept-Ranges:bytes
Age:9230
Cache-Control:max-age=31536000
Connection:keep-alive
Content-Length:2
Content-Range:bytes 0-1/4958188
Content-Type:audio/mp3
Date:Wed, 20 Apr 2016 11:35:09 GMT
ETag:"3f90ed8fa62501906107380830996ae9"
Last-Modified:Mon, 18 Apr 2016 15:05:16 GMT
Server:AmazonS3
Via:1.1 70801f007508df9ad04c63e7be99eab2.cloudfront.net (CloudFront)
X-Amz-Cf-Id:e-MSj2EuajyCKG8ah8f5WzjqQxymLfCeGaH5q6AMgt7T42u7wFKGig==
X-Cache:Hit from cloudfront
**Request Headers**
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,fr;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Host:XXXXXXXXXX.cloudfront.net
Pragma:no-cache
Range:bytes=0-1
Referer:http://www.domain.com/this-is-a-playlist/other-lives-tamer-animals
Save-Data:on
User-Agent:Mozilla/5.0 (Linux; Android 5.1.1; A0001 Build/LMY48Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.105 Mobile Safari/537.36
Auf der Web-Version sendet SoundManager2 diese erste Anforderung und abbrechen:
**General**
Request URL:https://XXXXXXXX.cloudfront.net/uploads/track/s3_file/XXX/XXXXXXXXXXXXX.mp3
**Request Headers**
Provisional headers are shown
Accept-Encoding:identity;q=1, *;q=0
Range:bytes=0-
Referer:http://www.domain.com/this-is-a-playlist/other-lives-tamer-animals
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Dann geht dieser Antrag direkt nach dem oben:
**General**
Request URL:https://XXXXXXXXXXX.cloudfront.net/uploads/track/s3_file/XXX/XXXXXXXXXX.mp3
Request Method:GET
Status Code:206 Partial Content
Remote Address:XX.XX.XXX.XXX:XXX
**Response Headers**
view source
Accept-Ranges:bytes
Age:168539
Cache-Control:max-age=31536000
Connection:keep-alive
Content-Length:4958188
Content-Range:bytes 0-4958187/4958188
Content-Type:audio/mp3
Date:Mon, 18 Apr 2016 15:35:12 GMT
ETag:"3f90ed8fa62501906107380830996ae9"
Last-Modified:Mon, 18 Apr 2016 15:05:16 GMT
Server:AmazonS3
Via:1.1 c035b03e455c334ee837503784ad41c8.cloudfront.net (CloudFront)
X-Amz-Cf-Id:bE3BNkkvWJ08qwcsRT-3TIvHs6dXT-QIJ8UP6kl3vQVg89LaiO1Npg==
X-Cache:Hit from cloudfront
**Request Headers**
view source
Accept:*/*
Accept-Encoding:identity;q=1, *;q=0
Accept-Language:fr,en-US;q=0.8,en;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Host:XXXXXXXXXXX.cloudfront.net
Pragma:no-cache
Range:bytes=0-
Referer:http://www.domain.com/this-is-a-playlist/other-lives-tamer-animals
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Auf mobilen, SoundManager2 die erreicht playing
Status in den Protokollen, aber jetzt wird Musik abgespielt. Bekommt jemand, warum der Stream nicht auf Handy startet ???
Während dieser Link, um die Frage beantworten kann, es besser ist, die die wesentlichen Teile der Antwort hier und geben Sie den Link als Referenz enthalten. Bitte [fügen Sie einen Kontext um den Link hinzu] (http://meta.stackoverflow.com/a/8259/169503), damit Ihre Mitbenutzer eine Idee haben, was es ist und warum es da ist. Zitiere immer den relevantesten Teil eines wichtigen Links, falls die Zielseite nicht erreichbar ist oder permanent offline geschaltet wird. –