Стратегия аннулирования кэша Amazon CloudFront для обеспечения свежести контента и экономической эффективности

Я пытаюсь понять, какой подход мне следует использовать для принудительного обновления фотографий профиля пользователя в CDN на сайте, где CloudFront является CDN, обслуживающей фотографии профиля, а S3 - базовым хранилищем файлов.

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

  1. Выпустите один запрос S3 put object для сохранения файла с оригинальным именем и один запрос Amazon CloudFront на аннулирование. Amazon CloudFront разрешает до 1000 бесплатных запросов на аннулирование в месяц, что кажется немного заниженным
  2. Выпустите один запрос объекта S3delete для удаления оригинальных фотографий, затем один запрос объекта S3 put для сохранения новой фотографии с уникальным новым именем файла. Это составит два запроса S3 на обновление файла и не потребует запроса на аннулирование CDN CloudFront. CloudFront будет обслуживать последние файлы по мере их обновления, обеспечивая автоматическую установку URL-адресов изображений на новые имена файлов
  3. Выпускать один запрос S3 put object для сохранения файла с его оригинальным именем, а затем на стороне клиента добавлять код версии к URL-адресам CDN (например, /img/profilepic.jpg?x=timestamp) или что-то в этом роде. Я не уверен, насколько эффективна эта стратегия с точки зрения аннулирования кэшированных объектов CloudFront

Спасибо

6
задан Shan Plourde 10 January 2012 в 15:48
поделиться