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.
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.