我已经将一个mp4视频动画上传到Azure Blob存储.除了将Content-Type设置为video / mp4之外,标题都是默认的.该视频可在
http://paddingtondev.blob.core.windows.net/media/1001/animation_default_headers.mp4访问
当我通过网页上的HTML5视频元素访问blob存储的视频时,浏览器(已在FF和Chrome中测试过)以200 HTTP响应接收整个视频.然后对该视频的进一步请求从blob存储器接收304响应.
但是,当您通过Azure CDN请求视频时,它会将其作为一系列HTTP 206部分响应返回给您.这是为了响应浏览器为请求指定Range标头.
但是,不会缓存通过CDN对视频的进一步请求,并且浏览器会重新下载整个视频(通过一系列进一步的206个请求).
如何确保视频缓存?我理解部分响应的有用性,但在我们的例子中,视频将不可搜索,我们只在下载整个文件时播放它.我可以在这里看到一些方法,但到目前为止还没有任何方法:
>禁止Azure CDN返回部分响应
>以某种方式从原始浏览器请求中删除范围标题
>说服浏览器缓存206个部分响应
我已经尝试将max-age Cache-Control标头添加到文件中,但这没有任何影响.理想情况下,我们在重新加载视频时根本不会访问Azure(因为它永远不会改变),但我很高兴接受Azure的HTTP请求的成本,如果它随后返回304.