Cloudfront returns 403 for a minute after upload

I have a cloudfront distribution in front of an s3 bucket. Cloudfront urls are restricted, and keys must be url signed. The s3 bucket is also restricted, allowing only cloudfront to read

Sometimes, after I successfully upload an image to my s3, cloudfront returns a 403 when I subsequently try to retrieve the image. This lasts for about a minute, after which cloudfront starts serving the image properly.

This happens even after the image is successfully uploaded, and I can manually view it by going to the s3 console.

0
задан 5 March 2017 в 22:23
1 ответ

Что-то заставляет вас запрашивать файлы из CloudFront до того, как они появятся в ведре. Настройка CloudFront по умолчанию приводит к отрицательному кэшированию до 5 минут.

По умолчанию, когда источник возвращает код состояния HTTP 4xx или 5xx, CloudFront кэширует эти ответы на ошибку в течение пяти минут, а затем отправляет следующий запрос на объект к источнику, чтобы узнать, была ли устранена проблема, которая привела к ошибке, и доступен ли запрашиваемый объект.

- http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages. html

Если браузер или что-либо еще попытается загрузить файл с этого конкретного края CloudFront (или любого другого края, если запрос также пройдет через региональный край -- CloudFront теперь имеет два краевых уровня) до завершения загрузки в S3, S3 вернет ошибку, а CloudFront -- в этом краевом месте -- кэширует эту ошибку и запомнит на следующие 5 минут, чтобы не беспокоиться о попытке повторить попытку.

Этот таймер настраивается.

Вы можете указать продолжительность кэширования ошибок - Минимальное время кэширования ошибок TTL- для каждого кода состояния 4xx и 5xx, который CloudFront кэширует. Процедура описана в Настройка поведения ответа на ошибку.

- http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html

Установите значение 0 для любых кодов ошибок, например 403, в которых необходимо отключить кэширование ошибок.

Содержимое этого ответа адаптировано из моей первоначальной заметки на Переполнение стека.

.
1
ответ дан 4 December 2019 в 16:20

Теги

Похожие вопросы