我正在尝试使用 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)