Сохранить или удалить старые изображения профиля? - PullRequest
1 голос
/ 05 ноября 2011

Я разрабатываю архитектуру, которая должна быть достаточно масштабируемой, мне было интересно, как обрабатывать мои пользовательские изображения.

В настоящее время я сохраняю изображение пользователя в виде файла, например:

/users/{user id}/normal.jpg
/users/{user id}/small.jpg

Проблема в том, что я склонен сталкиваться с проблемами кеширования в браузере людей, например, когда пользователь загружает новое изображение, оно перезаписывает файлы normal.jpg и small.jpg, но просмотр пользователя ненемедленно отразить изменение.

Было бы лучше не удалять изображения?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Один из способов справиться с этим - использовать метку времени последнего изменения файла изображения в качестве параметра в HTML-коде. Что-то вроде

<img src="normal.jpg?t=<timestamp>">

Вы можете рассчитать его с помощью функции stat().

1 голос
/ 09 ноября 2011

Дайте вновь загруженным изображениям любое произвольное имя, которое должно избавить от проблем с кэшированием. Например:

/users/{user id}/normal_{timestamp_of_upload}.jpg

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

...