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

... для чего это стоит.

Другие вопросы по тегам