Jag har färdigställt backend api för min app. Den använder expressjs och mongodb/mongoose. Från alla tester jag har gjort gör den ett bra jobb med att göra post och get förfrågningar till min MongoDB.
Jag tänkte distribuera min backend API den här veckan så att jag kan börja jobba på frontenden av min app. Men jag insåg att jag behövde ett sätt att lagra bilder som användaren laddar upp och för objekten i databasen.
En hel del människor säger att jag inte ska lagra bilder i min MongoDB-databas via Gridsf. Och att jag borde använda Amazon S3 istället.
Jag har dock vissa problem med detta tillvägagångssätt.
För min app finns front-end och min backend api i separata repos. Och jag har för avsikt att den förstnämnda ska göra api-förfrågan till den sistnämnda med hjälp av Axios för att visa databasdata i min html/CSS. På grund av detta känner jag att det komplicerar saker och ting att använda S3 för att lagra bilder. Till exempel, om jag hade en lista med användare, hur kan jag vara säker på att vilken avatarbild från S3 tillhör vilken användare?
Jag föreställer mig ett mardrömsscenario där jag har bilder som jag har fått från S3-hinken, men de har alla någon slumpmässig hash som filnamn, och jag vet inte vilken jpg-fil och vilken MongoDB-dokumentfil som hör till samma användare eller objekt. Det verkar bara som om lagring av bilder i databasen löser detta dilemma.
Ska jag gå vidare och bara använda Gridsf eller är det ett sämre tillvägagångssätt än att bara hålla sig till multer-s3 och s3 i allmänhet?
Är det ett bättre alternativ än något av dem?