使用Azure CDN和CentOS vm提供压缩文件

时间:2014-09-09 14:21:29

标签: azure azure-storage-blobs azure-cdn

我在Azure上运行了一个CentOS虚拟机。我在vm上有几个WordPress站点,我正在使用Azure CDN。有没有办法配置CDN来提供压缩内容?另外,我正在使用W3 Total Cache。

2 个答案:

答案 0 :(得分:0)

据我所知,在将文件提供给客户端之前,无法配置CDN来压缩文件。但是,当您将文件上传到blob存储时,您当然可以压缩文件,因此CDN将提供已经压缩的文件。无论如何,这就是我的意思。这是一段C#代码,演示了如何在将文件上传到Azure blob存储之前压缩文件:

var blobData = new byte[] { ... you data goes here ... };

var stream = new MemoryStream();
var zipStream = new GZipStream(stream, CompressionMode.Compress))
zipStream.Write(data, 0, blobData.Length);
zipStream.Close();

var storageCredentials = new StorageCredentials("myaccountname", "mykey");
var storageAccount = new CloudStorageAccount(storageCredentials, true);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("$root");

var blob = container.GetBlockBlobReference("mycompressedfile.txt");
blob.Properties.ContentEncoding = "gzip";
blob.UploadFromStream(stream);

答案 1 :(得分:0)

更新的答案: 所有3个Azure CDN提供程序; Verizon,Akamai和Microsoft支持基于Accept-Encoding请求标头压缩端点上的资源以返回到客户端。 请参阅文档以获取更多详细信息 https://docs.microsoft.com/en-gb/azure/cdn/cdn-improve-performance#compression-rules

资源必须满足某些条件,并且明确配置了资源MIME类型以进行压缩。