我们拥有超过1mb的文件,并通过Azure Verizon CDN从自动压缩中排除。
为了适应我们在上传到Azure Blob主干之前手动压缩文件。我们上传了该文件的压缩和未压缩版本。
我们还配置了Azure CDN来处理json文件:
现在,如果我用适当的标题卷曲blob或cdn,我不会得到压缩内容。
那么使用Azure执行此操作的标准方法是什么?我错过了设置或标题吗?
基于Accept-Encoding标头,内容交换是不可行的?
我是否需要删除.gz扩展名并始终将json压缩为拉链?
任何见解都将不胜感激。
答案 0 :(得分:3)
为了清晰起见进行编辑:
这里推荐的解决方案是将您的资源gzip并上传到没有.gz扩展名的博客存储,并确保它返回"内容编码:gzip"报头中。
之后,只需通过CDN端点请求该资产。如果您的请求包含 Accept-Encoding:gzip 标头,则CDN将返回压缩资产。如果您的请求不包含 Accept-Encoding 标头,则CDN将动态解压缩该文件,并为客户端提供资产的未压缩版本。
原始答案:
嘿,我来自Azure CDN团队。
首先,您使用的是Verizon或Akamai个人资料吗?
Verizon的边缘压缩限制为1MB,而Akamai则没有。此外,此限制仅适用于CDN边缘压缩,因此如果您的来源使用正确的压缩文件进行响应,则CDN仍应将其提供给客户端。
就我所知,Blob存储不会自动进行内容交换。
请注意,如果文件的未压缩版本已经缓存在CDN边缘,它将继续提供该文件,直到它过期。您可以使用'清除'重置此功能。功能
我们还在此处提供了问题排查说明文件:https://docs.microsoft.com/en-us/azure/cdn/cdn-troubleshoot-compression
如果以上方面没有帮助,我很乐意帮助您进一步排查问题。 只需将您的来源和cdn端点URL私下发送到rli@microsoft.com。