HLS 视频流使用直接 s3 链接但不通过 cloudfront

问题描述 投票:0回答:1

我正在尝试使用 S3 和 Cloudfront 设置 HLS 视频文件流。我遇到的问题是,当我使用清单文件的直接 S3 链接时,HLS 视频可以工作,但当我使用文件的 Cloudfront 链接时,HLS 视频不起作用。在后一种情况下,我收到 CORS 错误。我的存储桶上的 CORS 政策设置为:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedMethod>HEAD</AllowedMethod>
        <MaxAgeSeconds>86400</MaxAgeSeconds>
        <ExposeHeader>Authorization</ExposeHeader>
        <ExposeHeader>Content-Type</ExposeHeader>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

我的根目录和存储所有 hls 视频的根文件夹中还有以下 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>

我已经阅读了数十个教程,他们都说我只需要为我的存储桶设置一个 Web 发行版,并且为存储桶设置的存储桶策略和 CORS 策略应该可以工作。

我对我的存储桶拥有以下权限。

我的 Cloudfront 设置中是否遗漏了某些内容?除了原点(我将其设置为我的存储桶)之外,我将所有值保留为默认值。

S3链接:http://s3.ap-south-1.amazonaws.com/tjb-video-data/vod-data/1472453572-11/hls/master.m3u8

CloudFront链接:http://d1932r1vgq7q7.cloudfront.net/vod-data/1472453572-11/hls/master.m3u8

(我尝试过http和https)

amazon-s3 video-streaming amazon-cloudfront http-live-streaming
1个回答
0
投票

我遇到了类似的问题,并通过进行以下配置更改解决了它:

  1. 打开 HLS 视频源的编辑行为设置。
  2. 缓存密钥和源请求下 -> 选择 缓存策略和源请求策略(推荐)
  3. 缓存策略下 -> 选择 Elemental-MediaPackage

Config Screenshot

© www.soinside.com 2019 - 2024. All rights reserved.