【发布时间】:2016-09-15 07:21:18
【问题描述】:
我已经解决了这个问题,但这是一个有趣的问题。
因此,使用 Unity 和 Unity Web Player(我知道 WebGL 等等,但它还没有出炉,不支持我们需要的一切)我们直接从 Azure Blob 存储流式传输视频。
现在内置类 WWW 是一个非启动器,因为它不流式传输并且其中一些视频相当大。所以我们使用了一个插件和一个类 MovieStreamer 来流式传输视频。该插件直接使用套接字,但通过 Unity 的单声道版本。套接字需要在用于 CORS 的闪存端口上提供跨域策略(使用非 http 协议的 873)。
我原以为在存储服务器上设置 CORS 策略会启用此功能。由于 HTTP(s) CORS 策略可以通过在 $root 中放置一个 crossdomain.xml 并使其通过 API 公开访问来设置,因此 CORS 策略似乎是多余的。但是,它只是行不通。即使使用所有“*”,即使通过 API 使用 http 跨域文件 和 设置,我也会看到缺少跨域策略的相同错误。
我所做的是破解一些东西以使用另一个流式 HTTP 插件,就像魔术一样有效,因为它实际上使用了 crossdomain.xml。因此,在 AZURE 套接字 CORS 中不更改设置是不行的,但 BestHTTP 和 WWW 一样可以正常工作。
所以问题是: Azure 存储对 CORS 有哪些支持。 策略 API 是否应该启用闪存路由? 两个流之间的优先级是什么?
请记住,我们没有使用闪存,只是套接字路由依赖于闪存协议。
【问题讨论】:
-
您是否尝试过使用 Storage REST API 设置 CORS 规则?
-
有关 Azure 存储中的 CORS 支持的信息,请在此处查看我们的文档:msdn.microsoft.com/en-us/library/azure/dn535601.aspx
标签: azure azure-storage azure-blob-storage