Chromecast支持HLS,Amazon S3上的CORS错误

时间:2014-02-24 12:34:17

标签: amazon-web-services amazon-s3 cors chromecast

我正在尝试在我的chromecast应用中集成HLS流。

接收器部分很好,因为我使用多个HLS Stream网址进行了检查。

我不能让CORS位正常运行。

我正在使用亚马逊AWS S3。我为我的水桶设置了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>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

在我的假设中,这应允许从所有域访问以访问此存储桶内的资源。

但我仍然在Chromecast的javascript中收到以下错误。

XMLHttpRequest cannot load http://s3-eu-west-1.amazonaws.com/interactive-encoding-out/watermark-sintel-test/playlist.m3u8. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://s3-eu-west-1.amazonaws.com' is therefore not allowed access. 

3 个答案:

答案 0 :(得分:1)

试试这个https://github.com/TOMODOcom/TOMODOkorz。它对我有用。

  

TOMODOkorz允许您向任何域发出跨源请求。一旦将其添加到您的网站,它将从您的网站中删除任何跨域限制。允许轻松跨域资源共享

答案 1 :(得分:0)

基于http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html,您的示例看起来比nescessary更复杂。

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>

可能就是你所需要的一切。那就是说,你拥有桶 interactive-encoding-out 吗?这可能是个问题。您可能需要将段复制到您自己的存储桶中,您可以在此处设置此标头之前。

答案 2 :(得分:0)

现在我使用corsproxy作为反向代理,为我的请求添加了cors标头。真的推荐这个解决方案。这种方式无需自定义接收器应用程序。只需在服务器上的某处安装corsproxy

运行cors proxy:

$ corsproxy <SERVER_IP> <DESIRED_PORT>

并运行请求:

http://<SERVER_IP>:<DESIRED_PORT>/<YOUR REQUEST>

安装自: https://www.npmjs.org/package/corsproxy