关于亚马逊的文档,如果我上传同一文件的压缩文件和未压缩版本,则可以通过CloudFront / S3提供压缩文件。两个文件都需要具有相同的内容类型,压缩还需要将Content-Encoding设置为" gzip"。
所以现在我在S3上有两个文件:
https://s3-eu-west-1.amazonaws.com/kiga-client/gzip/client/config.js
https://s3-eu-west-1.amazonaws.com/kiga-client/gzip/client/config.js.gz
在我的网站上,我创建了一个指向CloudFront的链接,该链接链接到
上的config.jshttps://d1v5g5yve3hx29.cloudfront.net/gzip/client/config.js
我现在希望当客户端发送Accept-Encoding" gzip"时,我会自动获得压缩文件。通过:
curl -I -H 'Accept-Encoding: gzip,deflate' https://d1v5g5yve3hx29.cloudfront.net/gzip/client/config.js
不幸的是我得到了原始文件:
HTTP/1.1 200 OK
Content-Type: application/x-javascript
Content-Length: 3509
Connection: keep-alive
Date: Wed, 26 Nov 2014 11:12:43 GMT
Cache-Control: max-age=31536000
Last-Modified: Wed, 26 Nov 2014 10:50:15 GMT
ETag: "c310121403754f4faab782504912c15c"
Accept-Ranges: bytes
Server: AmazonS3
Age: 2405
X-Cache: Hit from cloudfront
Via: 1.1 8a256bddd45845f932a0a374e95fa057.cloudfront.net (CloudFront)
X-Amz-Cf-Id: 4HRqstvYGYD1A-vfvltNrXGffg0D5XbFjSpoWReI5UNYf-2jQfE8jQ==
响应标头Content-Encoding:应设置gzip但缺少。
答案 0 :(得分:0)
要提供压缩文件,您需要从CloudFront实际请求压缩文件的URL。见pt。 5在这里:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html#CompressedS3
答案 1 :(得分:0)
准确地说,实际上必须手动压缩文件,然后使用适当的元数据将它们上传到S3。
尽管文件已被压缩,但还必须保留原始文件名。
所以给一个文件image.jpg压缩到image.jpg.gz,必须上传image.jpg.gz并将其重命名为image.jpg