我将295437KB文件上传到Azure private Blob。我通过从Blob流式传输的应用服务连接Azure Verizon Premium CDN。返回的文件以不同的长度被截断,小于整个文件长度。几十MB的MB更短。 我已经检查了Blob上的文件大小(正确),还测试了从App Service检索它的调用(正确)。 所以它似乎是在CDN方面。我可以在CDN上设置一些超时或请求限制来缓解此问题吗?
以下是截断文件的CDN调用示例:
这是CDN指向的基础API(我的): 如果我点击它,我会收到完整的视频。它是295,437 KB。
有趣的是,结果并不一致。当我第二次直接从Postman点击原点时,我得到了一个260,276 KB的文件
当我从Chrome中的原点下载时,我第一次获得260,744,第二次获得262,144 KB。
原点是ASPNET核心Web API
答案 0 :(得分:0)
根据您的CDN网址,我发现CDN在下载文件时压缩了文件。
您可以运行fiddler来捕获请求,如下所示:
根据此article:要检查您的文件是否被压缩返回,您需要使用Fiddler或浏览器的开发人员工具等工具。检查随缓存的CDN内容返回的HTTP响应标头。如果有一个名为Content-Encoding的标头,其值为gzip,bzip2或deflate,则会压缩您的内容。
所以我建议您首先检查天蓝色门户中的压缩设置。
更多细节,您可以参考此article。
更新
根据你的两个网址,我已经下载了两个视频。我发现网站的大小比CDN的视频多一点。
结果如下:
我还使用mediainfo --fullscan来比较这两个文件之间的区别。
总体比特率不一样。
一个是17.7 Mbps,另一个是17.6 Mbps。有两分钟。
所以我猜你的网站可能有问题来获取blob流代码。我建议你重新检查它。如果你仍然面临同样的问题,我建议你发布一些相关的代码和blob视频网址,以便我们重现这个问题。