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 acceder al valor que selecciono en un menú desplegable sin enviar la solicitud a otra página en PHP

Soy una ama de casa que está interesada en aprender programación, pero no puedo mudarme. ¿Hay algún campamento de arranque remoto con horario flexible?

Quiero combinar HTML y PHP en una página cuando utilizo datos de formulario. ¿Qué debo hacer?

Estoy ejecutando un sitio web de comparación de precios. A través de Google Analytics, ¿es posible ver cuántas personas fueron de mi sitio al sitio comercial? ¿Cómo puedo verificar el número de referencias?

Estoy buscando desarrollo de front end, diseño de UX / UI o pasantías de desarrollo de software. ¿Qué puedo hacer para prepararme?

Hice un sitio para un cliente que ahora necesita que transfiera su dominio al host de un nuevo diseñador. ¿La mejor manera de hacerlo? Cualquier ayuda es apreciada.

He estado tomando lecciones en codecademy.com para HTML, JavaScript y Ruby, pero me gustaría comenzar a aprender otros lenguajes como C, C ++, C # y PHP. ¿Dónde empiezo?

Aprendí un poco de HTML y CSS, por lo que puedo escribir código básico. Pero, ¿cómo llego mi código al sitio web? FTP? ¿Lo escribo en mi sitio web?

He usado dos empresas de alojamiento web y ambas fueron muy lentas. ¿Qué es un host económico pero rápido y potente?

¿Sería una idea errónea si creyera que los desarrolladores web son extremadamente comercializables? ¿Qué es lo que hace que los desarrolladores web sean extremadamente comercializables?

Cómo hackear un webcomic para ver publicaciones en cola

Tengo tiempo para dedicarme a un campamento de entrenamiento y me preguntaba si Bloc es una herramienta que un "novato" podría seguir.

Hice un excelente formulario de contacto. ¿Cómo hago (usando HTML y CSS), que cuando alguien presiona 'enviar', me envían el formulario completo por correo electrónico?

Estoy en un grupo desarrollando una aplicación en ASP.NET sobre atletismo. ¿Debo ir con Web Forms o MVC, y cómo puedo convencer a los miembros de mi grupo?

Quiero construir un sitio como Airbnb. Si tengo un presupuesto bajo, ¿debo usar WordPress o desarrollarlo desde cero?