Reactjs 将brotli与AWS Cloudfront+;S3
我正在部署一个使用Cloudfront和S3的React应用程序,我想启用brotli进行压缩。我看过一些教程,它们使用lambda@edge. my Cloudfront发行版的行为配置如下 我还将“自动压缩对象”选项设置为“否”。我分别为源请求和查看器请求关联了以下两个lambda函数:Reactjs 将brotli与AWS Cloudfront+;S3,reactjs,amazon-s3,webpack,amazon-cloudfront,brotli,Reactjs,Amazon S3,Webpack,Amazon Cloudfront,Brotli,我正在部署一个使用Cloudfront和S3的React应用程序,我想启用brotli进行压缩。我看过一些教程,它们使用lambda@edge. my Cloudfront发行版的行为配置如下 我还将“自动压缩对象”选项设置为“否”。我分别为源请求和查看器请求关联了以下两个lambda函数: 原产地请求: “严格使用”; /** *在“原始请求”CloudFront事件上注册的函数 */ exports.handler=(事件、上下文、回调)=>{ const request=event
- 原产地请求:
“严格使用”;
/**
*在“原始请求”CloudFront事件上注册的函数
*/
exports.handler=(事件、上下文、回调)=>{
const request=event.Records[0].cf.request;
log(JSON.stringify(request));
const headers=request.headers;
const isBr=headers['x-compression']和&headers['x-compression'][0]。值==“br”;
const isGzip=headers['x-compression']和&headers['x-compression'][0]。值==“gzip”;
/**
*基于自定义标头更新请求路径
*/
让扩展=”;
如果(isBr)
扩展名=“.br”;
else if(isGzip)
extension=“.gzip”;
request.uri=request.uri+扩展名;
回调(null,请求);
};代码>CloudFront现在支持Brotli边缘压缩。您可以将“压缩对象”自动设置为“是”,并消除Lambda@Edge功能。CloudFront将从S3获取未压缩的文件,并可以将可缓存的请求压缩到边缘的Brotli或Gzip
具体配置文档请参见此处: