Utilizo Node.js para mi proyecto.Debo almacenar una imagen en MongoDB o en el sistema de archivos local (por Node.js)
¿Debo almacenar una imagen en el sistema de archivos local, o debo almacenarla en MongoDB?
¿Qué modo es más escalable?
Utilizo Node.js para mi proyecto.Debo almacenar una imagen en MongoDB o en el sistema de archivos local (por Node.js)
¿Debo almacenar una imagen en el sistema de archivos local, o debo almacenarla en MongoDB?
¿Qué modo es más escalable?
La solución más escalable es utilizar un servicio de almacenamiento compartido como Amazon S3 (o crear uno propio).
Esto le permite escalar horizontalmente mucho más fácil cuando decide agregar máquinas a su capa de aplicación, ya que no tendrá que preocuparse por las pesadillas de migración.
La idea básica detrás de esto es mantener la capa de almacenamiento desacoplada de la capa de aplicación. Entonces, al usar esta idea, podría crear un proceso node.js en una máquina separada que acepte cargas de archivos y luego las escriba en el disco.
Usaría GridFS para aprovechar la fragmentación, pero para obtener el mejor rendimiento usaría el sistema de archivos con nginx.
Si está diseñando un sistema sensible al rendimiento, use el sistema de archivos para almacenar sus imágenes sin dudas.
puede encontrar el rendimiento de comparar este blog: http://blog.thisisfeifan.com/2013/12/mongodb-gridfs-performance-test.html
En realidad, se pueden encontrar los GridFS MongoDB recomendadas utilizan los casos aquí: https://docs.mongodb.com/manual/core/gridfs/#when-to-use-gridfs
El PO no pide la publicidad acerca de Amazon. MongoDB también sería escalable a una fracción del costo de pagarle a Amazon a largo plazo. Pero la pregunta es sobre MongoDB y el sistema de archivos. –