我上载了一个295437KB的文件到Azure私有Blob。我通过一个应用程序服务连接了Azure Verizon Premium CDN,该服务从Blob中流式传输它。返回的文件被截断,长度不同,小于完整文件长度。少了几个10s MB。我已经检查了Blob上的文件大小(正确),还测试了从App Service检索它的调用(正确)。所以它看起来是在CDN这一边。CDN上有没有超时或者请求限制可以缓解的?
下面是一个截断文件的CDN调用示例:
这是CDN指向的底层API (我的):如果我点击它,我将获得完整的视频。大小为295,437 KB。
有趣的是,结果并不一致。当我从Postman第二次直接命中原点时,我得到了一个260,276KB的文件
当我在Chrome中从源码下载时,我第一次下载到了260,744,第二次下载到了262,144 KB。
源是ASPNET Core Web API
发布于 2017-05-26 14:50:02
根据你的CDN地址,我在下载的时候发现CDN已经把文件压缩了。
您可以运行fiddler来捕获请求,如下所示:
根据这个article:要检查你的文件是否被压缩了,你需要使用像Fiddler这样的工具或者你浏览器的开发者工具。检查与您的CDN缓存内容一起返回的HTTP响应头部。如果有一个名为Content-Encoding的标头,其值为gzip、bzip2或deflate,则您的内容将被压缩。
所以我建议你首先检查一下你的azure门户中的压缩设置。
更多细节,你可以参考这个article。
更新:
根据你的两个网址,我已经下载了两个视频。我发现这个网站的大小比CDN的视频要大一点。
结果如下:

我还使用mediainfo --fullscan比较了这两个文件之间的差异。
只是整体的比特率不一样。
一个是17.7 Mbps,另一个是17.6 Mbps。都是两分钟。
所以我猜你的网站可能有问题,无法获取blob流代码。我建议你可以重新检查一下。如果你仍然面临同样的问题,我建议你可以发布一些相关的代码和blob视频url,让我们重现这个问题。
https://stackoverflow.com/questions/44184298
复制相似问题