Tengo una aplicación web de chat desarrollada con la pila MEAN. ¿Cómo sirvo mejor una gran cantidad de archivos mp3 cortos?

Simplemente use Amazon S3 y deje que otro equipo maneje las preocupaciones de escalabilidad y rendimiento.

Si eso no está en su presupuesto por cualquier razón, lo más probable es que una ruta de archivo sea lo que desea. Es el camino simple. Las bases de datos no fueron diseñadas para archivos grandes. Puede hacer que funcione con BLOBs y Mongo dice que funciona muy bien (Blog de la comunidad MongoDB.org) … aunque podrían ser un poco sesgados 😉 Si sigue ese camino, es posible que tenga que lidiar con restricciones de tamaño BLOB, problemas de memoria , y leer y escribir puede ser más lento. Si está almacenando otros datos no binarios en la misma base de datos, también puede afectar negativamente el rendimiento. Los sistemas de archivos tienen inconvenientes, pueden comenzar a funcionar mal cuando comienzas a ingresar en cientos de miles de archivos, pero puedes usar un servidor de archivos estático muy simple con apache o nginx para servirlos, lo que reduce una gran cantidad de sobrecarga. Ambas opciones también se verán afectadas por su hardware, como si tiene un SSD, cuánta memoria, etc. Cualquier solución simple se complica cuando desea escalar. Una opción de base de datos no es necesariamente incorrecta y muchas grandes empresas siguen esa ruta para los BLOB. Hay pros y contras, pero fuera de la caja, un sistema de archivos es lo más probable con lo que desea ir. Usar MongoDB o un sistema de archivos debería ser muy fácil de comenzar, es la optimización la que te comerá las noches y los fines de semana. Mi mejor recomendación sería intentar hacer algunas pruebas con sus casos de uso exactos y hardware exacto, aprenderá mucho más sobre lo que es mejor para sus circunstancias que cualquier otra cosa.

Almacenaría los archivos MP3 en un bucket de Amazon Web Services S3 y permitiría una distribución de Cloudfront para servirlos usando el CDN de AWS. Si necesita mantener los archivos detrás de una contraseña del sitio, puede investigar la generación de URL firmadas para los archivos mediante las API de AWS.

El uso de AWS mantiene toda la carga asociada con el almacenamiento y el servicio de los archivos fuera de su servidor de aplicaciones, y se escalará fácilmente a medida que su sitio crezca.

Si está utilizando la pila MEAN, es posible que desee ver el complemento para mongo y s3 ​​en npm. Si está usando mangosta (lo recomiendo encarecidamente) puede usar la caja: https://www.npmjs.com/package/mo

More Interesting

Cómo hacer un sitio web PHP

Soy un desarrollador de Winform / WPF. ¿Qué debo aprender para convertirme en desarrollador de aplicaciones web en ASP .NET 5 o Meteor?

Quiero construir un sistema de chat que pueda servir a miles de personas en el mismo canal mientras que aloje varios canales que también puedan albergar la misma cantidad. Conozco los conceptos básicos de la programación del servidor en Java, pero no estoy seguro de qué técnica debo usar para permitir tantas conexiones.

Estoy aprendiendo Desarrollo Web, Python y C a la vez, ¿es este un buen camino?

Estoy comenzando mi primer trabajo de desarrollador front-end. ¿En qué debería centrarme para tener éxito?

Acabo de crear un .html simple y será la única página en mis servidores. ¿Cómo es que cada vez que escribo el dominio que está vinculando al proveedor de alojamiento?

Tengo problemas con los algoritmos básicos de JavaScript en Free Code Camp. ¿Debo aprender en otro lugar o continuar con Free Code Camp?

Parece que no tengo un mapa claro de la estructura de carpetas de Node y Express. ¿Qué debo hacer para entender Nodo y Javascript en general?

¿Puedo crear páginas web dinámicas usando solo HTML y CSS?

Cómo integrar mi sitio web de Shopify con mi aplicación Appery.io (HTML, CSS o JavaScript)

¿Qué debería aprender a continuación para ser un mejor desarrollador de JavaScript?

Me gustaría crear un formulario que complete una página web o un PDF con datos incluidos en un formulario de 'entrada'. El diseño de la salida es bastante simple, pero no puedo entenderlo para hacer esto. ¿Cuáles son algunas ideas?

¿Por qué aparece el error 'modelstate no válido' en ASP.NET?

¿Cómo lidian los programadores de lenguaje de script (PHP, JavaScript y Python) con el mal soporte de autocompletar en IDEs?

Tengo algunas habilidades para codificar un sitio web. ¿Qué otras cosas necesito para ejecutar mi propio sitio web?