Amazon s3 跨域访问,通过带签名URL的CloudFront进行HLS(JWplayer)
我正在使用HLS与amazons3流媒体,以及cloudfront使用JWplayer(使用Rails) 我使用签名的URL对URL进行加密,并创建了一个源访问标识,如Amazon Cloud Front文档中所示。 已签名的URL生成良好 我的bucket中还有一个'crossdomain.xml'文件,它允许所有来源(我给出了'*') 现在,当我试图从我的存储桶播放我的Hls视频文件时,我遇到了跨域访问被拒绝的问题 我认为jwplayer试图在没有签名哈希的情况下访问“crossdomain.xml”文件。所以,它得到了那个错误 我已经在演示版JWplayer Stream tester中测试了我的文件,这就是我在控制台中遇到的错误Amazon s3 跨域访问,通过带签名URL的CloudFront进行HLS(JWplayer),amazon-s3,jwplayer,amazon-cloudfront,Amazon S3,Jwplayer,Amazon Cloudfront,我正在使用HLS与amazons3流媒体,以及cloudfront使用JWplayer(使用Rails) 我使用签名的URL对URL进行加密,并创建了一个源访问标识,如Amazon Cloud Front文档中所示。 已签名的URL生成良好 我的bucket中还有一个'crossdomain.xml'文件,它允许所有来源(我给出了'*') 现在,当我试图从我的存储桶播放我的Hls视频文件时,我遇到了跨域访问被拒绝的问题 我认为jwplayer试图在没有签名哈希的情况下访问“crossdomain
Fetch API cannot load http://xxxxxxxx.cloudfront.net/xxx/1/1m_test.ts.
请求的资源上不存在“访问控制允许来源”标题。
Origin'http://demo.jwplayer.com因此,不允许访问。
响应的HTTP状态代码为403。
如果不透明响应满足您的需要,请将请求的模式设置为“无cors”,以获取禁用cors的资源。
这是截图
请帮帮我。多谢各位
我也遇到了同样的问题(但与Flowplayer有关)。我还不确定是否存在安全风险(以及是否需要所有步骤),但我使用了以下工具:
- 添加对crossdomain.xml的权限以供所有人打开/下载
- 在cloudfront发行版中仅为crossdomain.xml添加行为,而不限制访问(高于*的行为,限制访问)
- 然后我注意到在bucket中,到crossdomain.xml的链接类似于“”(注意奇怪的%1F),当我对crossdomain.xml进行重命名时,我可以删除名称第一个位置上的一个不可见字符(我没有创建crossdomain.xml,所以我不确定这是怎么发生的)
我让hlsjs也用这个运行,并使crossdomain.xml可访问,以某种方式禁用了CORS请求。我仍在对此进行调查。我可以确认这是有效的。只需要第一个和第二个项目符号。我也在Flowplayer中测试了这一点。