Recientemente me encontré con una situación mientras implementaba mi aplicación en heroku, me enteré de que heroku tiene un almacenamiento efímero, lo que significa que después de cada actualización de mi api, todas mis cargas se eliminarían.
Así que investigué un poco más sobre cómo podía conservar mis archivos y finalmente obtuve una respuesta: use AWS S3 Storage.
Dado que tenía que usar AWS y no quería crear una cuenta (por pereza), decidí simplemente crear una y en lugar de heroku y usar una instancia EC2.
Pero ahora que configuré mi nginx, proxy inverso, ssl, etc., me vino una pregunta a la mente. ¿Debo usar el almacenamiento AWS S3? ¿O debería usar el espacio disponible en la instancia EC2 y simplemente aumentarlo cuando lo necesite?
Mi configuración es la siguiente: tengo una API creada con node.js y express, la aplicación se ejecuta con pm2 y configuré un proxy inverso, por lo que cada vez que un usuario accede a un subdominio que apunta a la instancia ec2, el proxy inverso escucha ambos puertos 80 y 443 y redirigir el tráfico a 127.0.0.1:5000
Ahora, la cuestión es que el usuario tiene que cargar una foto de perfil y algunos otros archivos, y se cargan al mismo nivel de mi proyecto.
-- Project Folder -- routes -- model -- upload // I have subfolders here, and uploads are uploaded here. -- index.jsEntonces, ¿debo dejar mi proyecto como está o debo cambiar la forma en que funcionan mis cargas?
Puede usar S3 como almacenamiento para sus archivos cargados. Pero tendría que actualizar su código para poder usar el SDK de S3 para cargar archivos en el almacenamiento de S3. No hay nada de malo en almacenar imágenes en EC2, siempre y cuando no se encuentre con millones de ellas. Así que su configuración actual está bien.