Amazon S3和CloudFront - 压缩文件

时间:2014-11-26 11:59:10

标签: amazon-web-services amazon-s3 amazon-cloudfront

关于亚马逊的文档,如果我上传同一文件的压缩文件和未压缩版本,则可以通过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.js

https://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但缺少。

2 个答案:

答案 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