Мне трудно принять решение о том, как обрабатывать пользовательские загрузки без сохранения значений имени файла в базе данных. Когда пользователь загружает, скажем, аватар/изображение профиля, я создаю его в CDN. Мой помощник аватара в PHP знает URL-адрес контейнера, поэтому я могу просто повторить 'http://cdn-static-url.com/'.$userId.'.jpg
Но если пользователь повторно загружает/меняет свой аватар, старое изображение по-прежнему кэшируется в CDN до истечения TTL или я отправляю запрос на очистку (я использую Cloud Files и имею неограниченное количество запросов на очистку, но даже в этом случае очистка не сразу).
Как мне разрешить повторную загрузку изображения и либо;
- немедленно принудительно внести изменения,
- предупредите пользователя о статусе очистки («Обновление вашего нового изображения может занять X времени», я даже никогда не видел этого)
- создайте новый объект в CDN, что будет означать сохранение ссылки на имя файла в MySQL (тогда я буду делать SELECT каждый раз, когда хочу отобразить URL-адрес аватара на странице...)
- использовать вышеуказанное и использовать Memcache для текущего URL-адреса каждого объекта?