【问题标题】:Mobile streaming not working with WAF + CloudFront + S3 (working on desktop browsers!)移动流媒体不适用于 WAF + CloudFront + S3(适用于桌面浏览器!)
【发布时间】:2016-04-20 14:41:18
【问题描述】:

我正在使用 CloudFront Web 分配在包含私有文件的 S3 存储之上流式传输文件(CloudFront 可以访问它)。我使用 AWS WAF 来验证请求是否来自我的域(带有 referer 标头),以避免通过简单的 URL 复制粘贴直接下载音频文件。为了播放音频文件,我使用 SoundManager2。

问题:它在桌面浏览器(Chrome、Firefox 和 Safari)上就像一个魅力,但流永远不会开始在移动设备上播放(在 iOs 和 Android 上测试)。我不明白为什么。

**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

在网页版中,SoundManager2 发送第一个请求并取消它:

**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

然后这个请求就在上述之后:

**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

在移动设备上,SoundManager2 在日志中达到playing 状态,但现在播放音乐。有谁知道为什么无法在移动设备上开始直播???

【问题讨论】:

    标签: mobile amazon-s3 audio-streaming amazon-cloudfront soundmanager2


    【解决方案1】:

    在 Windows Mobile 上这可以工作。
    在此处查看有关部分移动浏览器上的 WAF 和 HTML5 音频/视频的说明:
    Preventing Amazon Cloudfront hotlinking

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。请add context around the link,这样您的其他用户就会知道它是什么以及它存在的原因。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
    猜你喜欢
    • 2016-07-22
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多