Cloudfront не будет устанавливать заголовок срока действия от S3 Origin
Я использую ведро S3, чтобы хранить кучу изображений продуктов для большого веб-сайта. Эти изображения подаются через Cloudfront с источником S3. Я заметил, что Cloudfront не помещает заголовок истечения срока действия на изображение, даже если я установил поведение распределения, чтобы настроить заголовки кэша и установить длинные min, max и TTL по умолчанию в Cloudfront.
Я понимаю, что могу поставить срок действия объекта S3, однако это будет довольно непрактично, поскольку у меня есть миллионы изображений. Я надеялся, что Cloudfront сделает мне честь добавить этот заголовок для меня, но это не так.
Так что мой вопрос - единственный способ получить этот заголовок истечения срока действия, чтобы применить его к каждому объекту S3, или, может быть, мне не хватает чего-то в Cloudfront, которое сделает это для меня?
1 ответ
TTL-конфигурация CloudFront только контролирует количество времени, в течение которого CloudFront хранит объект в кэше.
Это не добавляет никаких заголовков.
Итак, да, вам нужно установить их на объекты в S3.
Обратите внимание, что Cache-Control:
обычно считается лучшим выбором, чем Expires:
,
Альтернативой, чтобы избежать обновления объектов, является настройка прокси-сервера в EC2 в том же регионе, что и корзина, и позволить серверу добавлять заголовки при прохождении ответов через него.
Request: CloudFront >> Proxy >> S3
Response: S3 >> Proxy >> CloudFront
... для чего это стоит.