Подтвердить что ты не робот

AWS cloudfront не обновляется при обновлении файлов в S3

Я создал дистрибутив в облачном режиме, используя мои файлы на S3. Он отлично работал, и все мои файлы были доступны. Но сегодня я обновил свои файлы на S3 и попытался получить к ним доступ через Cloudfront, но он все равно дал старые файлы.

Что мне не хватает?

4b9b3361

Ответ 2

Как изменить максимальный возраст Cache-Control через консоль AWS S3:

  • Перейдите к файлу, чей Cache-Control вы хотите изменить.
  • Установите флажок рядом с именем файла (он станет синим)
  • В правом верхнем углу нажмите Properties
  • Нажмите Metadata
  • Если вы не видите Key с именем Cache-Control, нажмите Add more metadata.
  • Установите Key в Cache-Control, чтобы установить Value в max-age=0 (где 0 - количество секунд, в течение которого файл должен оставаться в кеше). Вы можете заменить 0 тем, что хотите.

введите описание изображения здесь

Ответ 3

Спасибо tedder42 и Chris Heald

Мне удалось сократить продолжительность кеша в моем исходном состоянии, т.е. объект s3, и доставить файлы более мгновенно, чем то, что было по умолчанию 24 часа. для некоторых из моих других дистрибутивов я также перенаправил все заголовки в начало, в которых облачный браузер ничего не кэширует и отправляет весь запрос в исходное.

спасибо.

Ответ 5

У меня также была эта проблема, и я решил ее с помощью управления версиями (не так, как в версии S3). Вот исчерпывающая ссылка на использование версий с облачным фронтом

Обобщение файлов в итоге:

Когда вы загружаете новый файл или файлы в корзину S3, меняйте версию и обновляйте ваши ссылки соответствующим образом. Из документации преимущество использования версионирования и аннулирования (другой способ сделать это) заключается в том, что нет никакой дополнительной платы за обновление CloudFront при изменении версии, в то время как при аннулировании. Если у вас есть сотни файлов, это может быть проблематично, но возможно, что при добавлении версии в корневой каталог или корневой объект по умолчанию (если применимо) это не будет проблемой. В моем случае у меня есть SPA, все, что мне нужно сделать, это изменить версию моего корневого объекта по умолчанию (index.html на index2.html), и он мгновенно обновляется в CloudFront.