Ho completato il backend api della mia applicazione. Usa expressjs e mongodb/mongoose. Da tutti i test che ho fatto, fa un ottimo lavoro nel fare richieste post e get al mio MongoDB.
Io avevo intenzione di distribuire la mia API di backend questa settimana così posso iniziare a lavorare sul front end della mia app. Ma mi sono reso conto che avevo bisogno di un modo per memorizzare le immagini che l’utente carica e per gli articoli nel database.
Un sacco di gente sta dicendo che non dovrei memorizzare le immagini nel mio database MongoDB tramite Gridsf. E che invece dovrei usare Amazon S3.
Tuttavia, ho qualche preoccupazione con questo approccio.
Per la mia app, il front-end e la mia api di back-end sono in repo separati. E ho intenzione che il primo faccia richiesta di api al secondo usando Axios per visualizzare i dati del database nel mio html/CSS. A causa di questo, sento che usare S3 per memorizzare le immagini complica le cose. Ad esempio, se avessi una lista di utenti, come posso essere sicuro che l’immagine dell’avatar da S3 sia per quale utente?
Mi sto immaginando uno scenario da incubo in cui ho immagini ricevute dal bucket S3, ma ognuna ha un hash casuale come nome del file, e non so quale file jpg e quale file documento MongoDB appartiene allo stesso utente o elemento. Mi sembra solo che memorizzare le immagini nel database risolva questo dilemma.
Dovrei andare avanti e usare solo Gridsf o è un approccio peggiore di quello di attenersi a multer-s3 e s3 in generale?
C’è un’alternativa migliore di entrambe?