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