使用videojs-contrib-hls

时间:2018-03-31 19:34:15

标签: amazon-s3 amazon-cloudfront video.js hls

我在同一个Amazon S3存储桶中有两个HLS视频播放列表(不同的文件夹)。我还使用CloudFront创建了HTTP分发。我使用带有videojs-contrib-hls插件的VideoJS播放器来播放视频。其中一个(让我们称之为good-browser-playlist.m3u8)很好;另一个(让我们称之为bad-browser-playlist.m3u8)给我一个Code 4错误(The media could not be loaded, either because the server or network failed or because the format is not supported)。奇怪的是,两者之前都工作正常,我无法弄清楚我做了什么来打破这个。

我的存储桶根目录中有一个crossdomain.xml文件,其中包含:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross- domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

当两个播放列表都在工作时,就在那里,现在它还在那里,所以我不认为这是问题所在。此外,播放列表及其所有文件都是公开的(在发布之前和之后)。

问题始于我尝试实施存储桶策略以限制对我的域的存储桶的访问。该政策基本上是这样的:

{
    "Version": "2012-10-17",
    "Id": "Policy152236038454",
    "Statement": [
        {
            "Sid": "Stmt152261024490",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucketname/*",
            "Condition": {
                "StringNotLike": {
                    "aws:Referer": [
                        "http://mydomain1.com/*",
                        "http://mydomain2.com/*",
                    ]
                }
            }
        }
    ]
}

但是,即使我删除了存储分区策略,bad-browser-playlist.m3u8仍然无法播放。

更新:将存储桶策略的更改传播到CloudFront需要多长时间?我重新启用了该策略,过了一段时间,没有更改任何其他内容,所有内容都在浏览器中播放。但是,我也可以 在VLC播放器中播放bad-browser-playlist.m3u8(我不应该 - 并且它正确地赢得了good-browser-playlist.m3u8),并且我无法在iOS上播放其中任何一个。自从我开始遇到问题以来,已经过了30分钟。我想知道在政策传播之前我的切换设置多次引起的混乱有多少。怎么会知道政策是否真的传播了?我需要减少测试中的变量数量。

0 个答案:

没有答案
相关问题