He completado la api del backend de mi app. Utiliza expressjs y mongodb/mongoose. De todas las pruebas que he hecho, hace un gran trabajo con la realización de post y obtener las solicitudes a mi MongoDB.
Tenía la intención de desplegar mi API backend esta semana para que pueda empezar a trabajar en el extremo delantero de mi aplicación. Pero me di cuenta de que necesitaba una manera de almacenar las imágenes que el usuario sube y para los artículos en la base de datos.
Mucha gente está diciendo que no debo almacenar imágenes en mi base de datos MongoDB a través de Gridsf. Y que debería utilizar Amazon S3 en su lugar.
Sin embargo, tengo algunas preocupaciones con este enfoque.
Para mi aplicación, el front-end y mi api backend están en repos separados. Y tengo la intención de que el primero haga peticiones api al segundo usando Axios para mostrar los datos de la base de datos en mi html/CSS. Debido a esto, siento que usar S3 para almacenar imágenes complica las cosas. Por ejemplo, si tuviera una lista de usuarios, ¿cómo puedo estar seguro de qué imagen de avatar de S3 es para qué usuario?
Estoy imaginando un escenario de pesadilla en el que tengo imágenes recibidas del cubo de S3, pero cada una tiene algún hash aleatorio como el nombre del archivo, y no sé qué archivo jpg y qué archivo de documento de MongoDB pertenece al mismo usuario o elemento. Sólo me parece que el almacenamiento de imágenes en la base de datos resuelve este dilema.
¿Debo seguir adelante y sólo usar Gridsf o es un enfoque peor que simplemente pegar a multer-s3 y s3 en general?