Najlepszy sposób na przechowywanie avatarów

Jaki sposób na przechowywanie avatarów jest najwydajniejszy?
Ja wymyśliłem taki: public/avatars/*.jpg

Każdy ma jeden avatar, nazwa to user.id.png
I pole bool has_avatar w bazie danych.

Ale proszę o jakieś sprawdzone sposoby na to.

co masz na myśli mówiąc o “najwydajniejszym” sposobie przechowywania?

Teoretycznie mógłbym przechowywać obrazek wewnątrz bazy danych… jest wiele rozwiązań. Chodzi mi o najbardziej poprawne.

Przechowywanie u siebie albo w chmurze

Oczywiście Gravatar, jeśli tylko możesz sobie na niego pozwolić (użytkownik musi podać swój adres email).

Jeśli chodzi o wydajność to nigdy przechowywanie obrazków w bazie danych nie będzie szybsze niż przechowywanie ich na dysku i serwowanie poprzez jakiś szybki serwer WWW (nginx?), ze względu na architekturę kerneli systemów uniksowych, które taki odczyt + wysłanie wspierają. Serwer WWW mało co musi robić. W przypadku przechowywania plików w bazie danych, zarówno serwer jak i baza danych muszą się więcej namielić.

Gravatar odpada (nie każdy będzie musiał mieć email)
Jak rozumiem przechowywanie blobów w DB też odpada.
Czy więc najlepszym rozwiązaniem będzie folder z avatarami, i po id poznawałbym, który czyj avatar?
Jeszcze zobaczę paperclipa.

paperclip

gemy Paperclip + AWS S3 (musisz mieć kartę kredytową)

Ja używam grawatara. Mam podpięte kilka e-maili pod jedną grafikę i wszystko jak narazie działa oki. Tam gdzie nie ma e-maili to trudno nie ma też i moich obrazków w komentarzach.