Am finalizat api-ul backend al aplicației mele. Folosește expressjs și mongodb/mongoose. Din toate testele pe care le-am făcut, face o treabă grozavă cu efectuarea de cereri post și get către MongoDB-ul meu.
Am vrut să implementez API-ul meu backend în această săptămână, astfel încât să pot începe să lucrez la partea frontală a aplicației mele. Dar mi-am dat seama că am nevoie de o modalitate de a stoca imagini pe care utilizatorul le încarcă și pentru articolele din baza de date.
Mulți oameni spun că nu ar trebui să stochez imagini în baza mea de date MongoDB prin Gridsf. Și că, în schimb, ar trebui să folosesc Amazon S3.
Cu toate acestea, am unele îngrijorări cu privire la această abordare.
Pentru aplicația mea, front-end-ul și api-ul meu backend sunt în depozite separate. Și intenționez ca primul să facă solicitări api către cel de-al doilea folosind Axios pentru a afișa datele bazei de date în html/CSS-ul meu. Din acest motiv, consider că utilizarea S3 pentru a stoca imagini complică lucrurile. De exemplu, dacă aș avea o listă de utilizatori, cum pot fi sigur că imaginea de avatar din S3 este pentru care utilizator?
Îmi imaginez un scenariu de coșmar în care am imagini primite de la S3 bucket, dar fiecare dintre ele are un hash aleatoriu ca nume de fișier, iar eu nu știu care fișier jpg și care fișier document MongoDB aparține aceluiași utilizator sau element. Mi se pare că stocarea imaginilor în baza de date rezolvă această dilemă.
Ar trebui să merg mai departe și să folosesc Gridsf sau este o abordare mai proastă decât să rămânem la multer-s3 și s3 în general?
Există o alternativă mai bună decât oricare dintre ele?
.