Azure CDN Blob 存储手动压缩

Azure CDN Blob Storage Manual Compression

我们有超过 1mb 的文件,并通过 Azure Verizon CDN 排除在自动压缩之外。

为了适应,我们在上传到 Azure Blob 之前手动压缩文件 backbone。我们上传文件的压缩和未压缩版本。

我们还配置了 Azure CDN 来处理 json 文件:

现在,如果我使用适当的 headers 卷曲 blob 或 cdn,我不会获得压缩内容。

那么使用 Azure 执行此操作的标准方法是什么?我是否缺少设置或 header?

基于 Accept-Encoding header 是否无法进行内容交换?

我是否需要删除 .gz 扩展名并始终提供 json 压缩文件?

如有任何见解,我们将不胜感激。

为清楚起见编辑:

此处推荐的解决方案是 gzip 并将您的资产上传到不带 .gz 扩展名的博客存储,并确保它 return 是 "Content-Encoding:gzip" header。

之后,只需通过 CDN 端点请求该资产即可。如果您的请求包含 Accept-Encoding:gzip header,CDN 将 return 压缩资产。如果您的请求不包含 Accept-Encoding header,CDN 将即时解压缩文件并为客户端提供资源的未压缩版本。

原答案:

嘿,我来自 Azure CDN 团队。

首先,您使用的是 Verizon 还是 Akamai 配置文件?

Verizon 对边​​缘压缩有 1MB 的限制,而 Akamai 没有。此外,此限制仅适用于 CDN 边缘压缩,因此如果您的来源以正确的压缩文件响应,CDN 仍应将其提供给客户端。

据我所知,Blob 存储不会自动进行内容交换。

请注意,如果文件的未压缩版本已缓存在 CDN 边缘上,它将继续提供该文件,直到它过期。您可以使用 'purge' 函数重置它。

我们这里还有一份故障排除文档:https://docs.microsoft.com/en-us/azure/cdn/cdn-troubleshoot-compression

如果上述方法没有帮助,我很乐意帮助您进一步排查问题。 只需通过 rli@microsoft.com.

私下向我发送您的来源和 cdn 端点 URL