From 197866d56e194130a4c08265e1f0a3f635bc098d Mon Sep 17 00:00:00 2001 From: ivan-aksamentov Date: Tue, 6 Sep 2022 15:29:58 +0200 Subject: [PATCH] fix(infra): correctly download .tar.gz files --- .../lambda-at-edge/OriginRequest.lambda.js | 2 +- .../lambda-at-edge/OriginResponse.lambda.js | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/infra/data/lambda-at-edge/OriginRequest.lambda.js b/infra/data/lambda-at-edge/OriginRequest.lambda.js index d08d00a..0d6e1ca 100644 --- a/infra/data/lambda-at-edge/OriginRequest.lambda.js +++ b/infra/data/lambda-at-edge/OriginRequest.lambda.js @@ -1,4 +1,4 @@ -/* eslint-disable prefer-destructuring */ +/* eslint-disable prefer-destructuring,sonarjs/no-collapsible-if,unicorn/no-lonely-if */ // Implements rewrite of non-compressed to .gz URLs using AWS // Lambda@Edge. This is useful if you have precompressed your files. // diff --git a/infra/data/lambda-at-edge/OriginResponse.lambda.js b/infra/data/lambda-at-edge/OriginResponse.lambda.js index 34951bd..96f7ed9 100644 --- a/infra/data/lambda-at-edge/OriginResponse.lambda.js +++ b/infra/data/lambda-at-edge/OriginResponse.lambda.js @@ -1,3 +1,4 @@ +/* eslint-disable sonarjs/no-collapsible-if,unicorn/no-lonely-if */ // Workaround! Fixes HTTP headers for serving broken S3 uploads: // 'Cache-Control': 'no-cache', // 'Content-Encoding': 'gzip', @@ -6,22 +7,17 @@ // event of a Cloudfront distribution const NEW_HEADERS_FIX_CACHE = { - 'Cache-Control': 'no-cache', + 'cache-control': 'no-cache', } const NEW_HEADERS_FIX_COMPRESSION = { - 'Content-Encoding': 'gzip', + 'content-encoding': 'gzip', } -const ARCHIVE_EXTS = ['.7z', '.br', '.bz2', '.gz', '.lzma', '.xz', '.zip', '.zst'] +const ARCHIVE_EXTS = ['.7z', '.bz2', '.lzma', '.tar.gz', '.xz', '.zip', '.zst'] function addHeaders(headersObject) { - return Object.fromEntries( - Object.entries(headersObject).map(([header, value]) => [header.toLowerCase(), [{ - key: header, - value - }]]), - ) + return Object.fromEntries(Object.entries(headersObject).map(([header, value]) => [header.toLowerCase(), [{ value }]])) } function getHeader(headers, headerName) { @@ -44,10 +40,10 @@ function modifyHeaders({ request, response }) { let newHeaders = addHeaders(NEW_HEADERS_FIX_CACHE) if (ARCHIVE_EXTS.every((ext) => !request.uri.endsWith(ext))) { - if(acceptsEncoding(request.headers, 'gzip')) { + if (acceptsEncoding(request.headers, 'gzip')) { newHeaders = { ...newHeaders, - ...addHeaders(NEW_HEADERS_FIX_COMPRESSION) + ...addHeaders(NEW_HEADERS_FIX_COMPRESSION), } } }