Amazon s3 我如何加上「;“接受编码”;我的CloudFront发行版的标题?

Amazon s3 我如何加上「;“接受编码”;我的CloudFront发行版的标题?,amazon-s3,compression,gzip,amazon-cloudfront,Amazon S3,Compression,Gzip,Amazon Cloudfront,我打开CloudFront仪表板并单击分发ID,然后单击Origin选项卡并单击,选择默认的Origin,然后单击Edit。 尝试在自定义源标题下的“标题名称”中添加“接受编码”,并将其值设置为“gzip”,但显示以下错误: com.amazonaws.services.cloudfront.model.InvalidArgumentException: The parameter HeaderValue for Accept-Encoding is not empty. (Service: A

我打开CloudFront仪表板并单击分发ID,然后单击Origin选项卡并单击,选择默认的Origin,然后单击Edit。 尝试在自定义源标题下的“标题名称”中添加“接受编码”,并将其值设置为“gzip”,但显示以下错误:

com.amazonaws.services.cloudfront.model.InvalidArgumentException: The parameter HeaderValue for Accept-Encoding is not empty. (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidArgument; Request ID: 05685bb6-ca02-11e7-8a62-0b7037d34a58)

如何通过CloudFront实现gzip压缩

您不能基于
接受编码
头将CloudFront配置为缓存。引自:

您可以根据任何请求头的值将CloudFront配置为缓存,以下情况除外:

  • 接受编码
  • 联系,
但是,您可以将CloudFront配置为压缩 文件类型。 在CloudFront控制台中“自动压缩对象”选择

注意:仅压缩大小在1000到10000000字节之间的文件。当您使用S3或任何其他自定义源时,CloudFront必须获得带有
内容长度
头的响应,以便确定文件大小是否在CloudFront压缩的范围内。如果您使用的是S3,请转到CORS配置,并将
内容长度
标题添加到允许的标题列表中

如果希望您的源站压缩文件,则设置取决于您在该源站上运行的服务器Server应设置为使用
content Encoding:gzip
头向CloudFront提供gzip-ed内容,这样它就不会被CloudFront压缩。
这些是基本的指导原则,但具体的设置取决于您的具体配置。

如果您试图使客户端能够在发送到CloudFront之前压缩文件/数据,则不能。这是不受支持的。其中一个原因是很容易创建zip(gzip)文件,当解压缩时,这些文件的大小会爆炸(zip炸弹)。一个糟糕的演员可以通过这种类型的黑客很容易地破坏你的CloudFront/后端连接。非常感谢。