У меня облачный раздача перед ведром s3. URL-адреса Cloudfront ограничены, а ключи должны быть подписаны URL-адресом. Корзина s3 также ограничена, что позволяет читать только облачный интерфейс
Иногда после того, как я успешно загружаю изображение на свой s3, cloudfront возвращает 403, когда я впоследствии пытаюсь получить изображение. Это длится около минуты, после чего cloudfront начинает правильно обслуживать изображение.
Это происходит даже после успешной загрузки изображения, и я могу просмотреть его вручную, перейдя в консоль s3.
Из-за чего-то ваши файлы запрашиваются у 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, где вы хотите отключить кеш ошибок.
Содержание этого ответа адаптировано из моего исходного сообщения на Переполнение стека.