Witam. Użytkownik będzie miał możliwość wybrania 5 zdjęć z telefonu i wysłanie ich poprzez API do bazy danych. jak najlepiej rozwiązać tę kwestię? Martwię się, ponieważ BLOB może się za mały, a MEDIUMBLOB za duży. A może lepiej przesłać obraz do kontrolera a kontroler zapisze obraz na serwerze FTP? Co myślicie?
Najlepiej byłoby zapisać w CDN a w bazie trzymać link do zdjęcia. Jak nie ma CDN to zapisać na dysku (przez API) i w bazie trzymać ścieżkę do zdjęcia.
Zapisać na dysku tzn w np. folderze ftp?
Ale po co ci FTP jak będziesz to przepychał przez API - wystawiasz endpointa, który pod spodem zapisuje na dysku i np zwraca ścieżkę, którą potem zapisujesz w danych użytkownika. Potem odczytujesz w drugą stronę i zwracasz przez API.
https://min.io ? Reszta tak jak pisze Brzydki.
A w jaki sposób wysyłać obraz poprzez api? Jako byte[] w jsonie? Obrazy to dla mnie nowość a chce żeby to było poprawnie zrobione
Dziękuję Wam bardzo za pomoc. Biorę się za pisanie :)
Mamy system CMS, w którym od 20 lat trzymamy w bazie w BLOBACH i jest ok.
Mamy też system gdzie trzymamy w folderach i też jest ok.
Zalety bazy nad FTP i odwrotnie to dyskusja typowo akademicka.
@katakrowa: Moim zdaniem, podstawową kwestią jest ilość zdjęć. Osobiście nie przepada za trzymaniem grafik, pdfów itp w bazie. Powiększ to znacznie bazę a plusów jest niewiele.
Nie napisałeś co to za baza, ale może być MSSQL. Jeśli tak to poczytaj to:
Filestream
inna praktyką może być też oddzielenie danych od plików:
- baza danych
- baza plików
Pobieranie plików np. poprzez procedurę składowaną dla danego id.
Wtedy baza danych będzie lżejsza :)