Я настроил облачный фронт на Compress Objects Automatically. Исходным сервером является ведро s3. Я загрузил файл на s3 через облачный фронт, а затем отправил запрос GET к файлу. Но возвращаемый тип содержимого не gzip. Ниже приведен запрос, который я отправил, и вы можете видеть, что тип содержимого ответа — application/octet-stream. Я добавил Accept-Encoding: gzip в заголовок, но почему он не может вернуть сжатый контент?
$ curl -I -H "Accept-Encoding: gzip" https://dnruqi0psnxg6.cloudfront.net/images/cells/dc0c2f15-065b-4f3c-a4d6-81c3b09a163f.png
HTTP/2 200
content-type: application/octet-stream
content-length: 142317
date: Fri, 15 Mar 2019 22:58:49 GMT
last-modified: Fri, 15 Mar 2019 22:58:49 GMT
etag: "c6d54353c861d0145e10b1abdcb2976c"
x-amz-version-id: jgFwqD.F6lzvjbgcjfO.E6KK3IdHttaR
accept-ranges: bytes
server: AmazonS3
age: 29
x-cache: Hit from cloudfront
via: 1.1 0ea9662a9e73b2ca5836ede6924f81b0.cloudfront.net (CloudFront)
x-amz-cf-id: MTgwzb8KZinic50msfORINK2pSHW8QCOv82ur0Lq3-jH3WH_8prvow==





Убедитесь, что объекты соответствуют следующим критериям из документы:
The file must be of a type that CloudFront compresses.
The file size must be between 1,000 and 10,000,000 bytes.
The response must include a Content-Length header so CloudFront can determine whether the size of the file is in the range that CloudFront compresses. If the Content-Length header is missing, CloudFront won't compress the file.
The response must not include a Content-Encoding header.
См. список типы файлов, которые CloudFront может сжимать.
В этом случае проблема заключается в том, что application/octet-stream не сжимается CloudFront.
да. Вообще говоря, вы не хотите сжимать изображения с помощью gzip, поскольку форматы изображений сами обрабатывают сжатие данных.
@ZhaoYi «сжатие изображений» не является сжатием в этом же смысле. Функция CloudFront «автоматически сжимать объекты» применяет сжатие gzip обратимый, что позволяет браузеру байт за байтом восстанавливать исходный объект. Сжатие изображения почти всегда является формой необратимого сжатие данных, который устраняет теоретически избыточные данные, чтобы уменьшить размер файла, но теряет качество и/или детали таким образом, что его нельзя полностью восстановить, но это считается приемлемым компромиссом качества. по размеру/скорости. Соответствующие соотношения и алгоритмы субъективны, ничто не является бесплатным.
Я загружаю изображение в облачный сервис, но тип содержимого —
application/octet-stream. Означает ли это, что Cloudfront не поддерживает сжатие изображений?