Jeg har færdiggjort backend api af min app. Den bruger expressjs og mongodb/mongoose. Fra alle de tests jeg har lavet, gør den et godt stykke arbejde med at lave post og get anmodninger til min MongoDB.
Jeg havde til hensigt at implementere min backend API i denne uge, så jeg kan begynde at arbejde på frontend af min app. Men jeg indså, at jeg havde brug for en måde at gemme billeder, som brugeren uploader og til emnerne i databasen.
Meget folk siger, at jeg ikke skal gemme billeder i min MongoDB-database via Gridsf. Og at jeg i stedet bør bruge Amazon S3.
Men jeg har dog nogle bekymringer med denne tilgang.
For min app er front-end og min backend api i separate repos. Og jeg har til hensigt, at førstnævnte skal foretage api-forespørgsel til sidstnævnte ved hjælp af Axios for at vise databasedata i min html/CSS. På grund af dette føler jeg, at det komplicerer tingene at bruge S3 til at gemme billeder. Hvis jeg f.eks. havde en liste over brugere, hvordan kan jeg så være sikker på, hvilket avatarbillede fra S3 er til hvilken bruger?
Jeg forestiller mig et mareridtsscenarie, hvor jeg har billeder modtaget fra S3-spand, men de har hver især en tilfældig hash som navnet på filen, og jeg ved ikke, hvilken jpg-fil og hvilken MongoDB-dokumentfil der tilhører den samme bruger eller det samme element. Det forekommer mig bare, at lagring af billeder i databasen løser dette dilemma.
Bør jeg gå videre og bare bruge Gridsf, eller er det en værre tilgang end bare at holde sig til multer-s3 og s3 generelt?
Er der et bedre alternativ end begge?