如何使浏览器缓存来自Azure CDN的视频响应?

 gl6474177 发布于 2023-01-08 13:19

我已将mp4视频动画上传到Azure Blob存储。除了将Content-Type设置为video / mp4之外,所有标头都是默认值。可以在http://paddingtondev.blob.core.windows.net/media/1001/animation_default_headers.mp4上访问该视频。

我在该Blob存储帐户上有一个Azure CDN。通过CDN的同一视频的URL为http://az593791.vo.msecnd.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(因为它永远不会改变),但是如果它随后返回304,我很乐意接受HTTP请求到Azure的费用。

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有