У меня есть лямбда-функция, которая при вызове выгрузит () из базы данных красного смещения в корзину s3, используя следующие команды:
unload ('<SQL QUERY TO UNLOAD')
to 's3://<BUCKET
iam_role 'arn:aws:iam::<ROLEID>
delimiter ','
PARALLEL OFF
ESCAPE
ALLOWOVERWRITE
GZIP
Затем я выполняю следующий код nodejs после завершения этой операциив попытке добавить заголовки ContentType и ContentEncoding:
s3.copyObject({
Bucket: directory,
MetadataDirective: 'REPLACE',
CopySource: `${directory}/${files[i].Key}`,
ContentType: 'text/csv',
ContentEncoding: 'gzip',
Key: `${files[i].Key}`
}).promise()
Наконец, когда это будет завершено, я отправлю ссылку CloudFront по электронной почте пользователю, который запросил данные.Когда пользователь нажимает на ссылку, он загружает файл .gz.Я ожидаю, что когда пользователь разархивирует файл, который он находит. CSV-файл ОДНАКО, он находит файл без расширения файла ...
Есть ли способ вернуть заархивированный CSV-файл через CloudFront (или даже через s3, если CloudFront не подходит).
В нынешнем виде пользователи должны разархивировать, а затем добавлять расширение файла .csv при каждой загрузке моих данных, что не идеально.