- 21, Oct 2024
- #1
На моем сайте у меня есть возможность пользователям загружать аватары (которые они загружают на s3). На данный момент у них может быть только один аватар, поэтому в настоящее время я просто установил имя файла в соответствии с их идентификатором пользователя.
Однако они могут заменять свои аватары, что вызывает проблемы. Поскольку s3 распространяется на CloudFront, мне нужно сделать недействительным кеш для имени файла, когда они загружают свой новый аватар (поскольку он заменяет старый файл аватара). Но в случае с CloudFront аннулирование обходится дорого.
Похоже, что Amazon предпочел бы, чтобы я просто не удалял старые файлы, а вместо этого просто дал новому аватару новое имя и оставил там старый, даже если он больше никем не используется. Таким образом, я могу избежать признания недействительным.
Другой вариант — вообще не использовать CloudFront, а просто загрузить в s3 и сделать корзину s3 общедоступной. Но проблема в том, что CloudFront гораздо щедрее в отношении затрат и сумм GET-запросов (2 000 000 в месяц с CloudFront и только 20 000 в месяц с корзинами S3).
По сути, у меня есть три варианта, и я не уверен, какой выбрать, учитывая вышеизложенное:
1) Замените файлы в s3, а затем сделайте файл недействительным в CloudFront.
- Проблема: аннулирование стоит дорого
2) Просто добавьте больше файлов в корзину s3 и используйте CloudFront.
- Проблема: старые, неиспользуемые аватары просто сидят и тратят место в сегменте 3
3) Не используйте CloudFront, а просто замените файл в s3 и затем обслуживайте его из корзины.
- Проблема: CloudFront имеет более дешевые запросы GET и лучший пользовательский опыт с учетом задержки.
Редактировать: В данном случае я спрашиваю про AWS с s3 и CloudFront. Я хочу наиболее эффективно автоматизировать процесс, с помощью которого пользователь может загрузить аватар в мою серверную службу. В частности, меня смутила перезапись старых аватаров. Общий процесс «PreSigned URL -> Загрузить в s3 -> Распространить через CloudFront» кажется адекватным, но я не уверен, как учесть перезапись старых, больше не используемых файлов в этом плане, учитывая, что выбор кажется быть между дорогостоящим аннулированием или сохранением устаревших файлов.
#amazon-web-services #amazon-s3 #amazon-cloudfront #cache