Olen saanut sovellukseni backend apin valmiiksi. Se käyttää expressjs:ää ja mongodb/mongoosea. Kaikesta testauksen olen tehnyt, Se tekee hyvää työtä tehdä post ja saada pyyntöjä minun MongoDB.
Olin tarkoitus ottaa käyttöön minun backend API tällä viikolla, jotta voin aloittaa työskentelyn front end minun app. Mutta tajusin, että tarvitsin tavan tallentaa kuvia, jotka käyttäjä lataa ja kohteita varten tietokantaan.
Paljon ihmisiä sanoo, että minun ei pitäisi tallentaa kuvia MongoDB-tietokantaani Gridsf:n kautta. Ja että minun pitäisi sen sijaan käyttää Amazon S3:a.
Minulla on kuitenkin joitakin huolenaiheita tämän lähestymistavan suhteen.
Sovelluksessani front-end ja back-end api ovat erillisissä repossa. Ja tarkoitukseni on, että edellinen tekee api-pyynnön jälkimmäiselle Axiosin avulla, jotta tietokantatiedot voidaan näyttää html/CSS:ssä. Tämän vuoksi minusta tuntuu, että S3:n käyttäminen kuvien tallentamiseen mutkistaa asioita. Esimerkiksi jos minulla olisi lista käyttäjistä, miten voin olla varma, mikä avatar-kuva S3:sta on millekin käyttäjälle?
Kuvittelen painajaismaista skenaariota, jossa minulla on kuvia, jotka on saatu S3:n ämpäriin, mutta jokaisella niistä on jokin satunnainen hash tiedoston nimenä, enkä tiedä, mikä jpg-tiedosto ja mikä MongoDB:n dokumenttitiedosto kuuluu samalle käyttäjälle tai kohteelle. Minusta vain tuntuu, että kuvien tallentaminen tietokantaan ratkaisee tämän dilemman.
Pitäisikö minun mennä eteenpäin ja käyttää vain Gridsf:ää vai onko se huonompi lähestymistapa kuin pitäytyä multer-s3:ssa ja s3:ssa yleensä?
Onko olemassa parempaa vaihtoehtoa kuin kumpikaan?