Tengo una pregunta sobre el alojamiento de grandes activos generados dinámicamente y Heroku.Heroku: Sirviendo grandes activos generados dinámicamente sin un sistema de archivos local
Mi aplicación ofrecerá la descarga masiva de un subconjunto de sus datos subyacentes, que consistirá en un archivo grande (> 100 MB) generado una vez cada 24 horas. Si estuviera ejecutando en un servidor, simplemente escribiría el archivo en el directorio público.
Pero según tengo entendido, esto no es posible con Heroku. Se puede escribir en el directorio/tmp, pero el tiempo de vida garantizado de los archivos existe seems to be defined en términos de un ciclo de solicitud-respuesta, no un trabajo en segundo plano.
Me gustaría utilizar S3 para alojar el archivo de descarga. El S3 gem admite subidas de transmisión, pero solo para archivos que ya existen en el sistema de archivos local. Parece que el tamaño del contenido debe conocerse por adelantado, lo que no será posible en mi caso.
Esto parece un catch-22. Estoy tratando de evitar crear una cadena gigantesca en la memoria cuando la cargue en S3, pero S3 solo admite la carga de archivos que ya existen en el sistema de archivos local.
Dada una aplicación Rails en la que no puedo escribir en el sistema de archivos local, ¿cómo sirvo un archivo grande que se genera diariamente sin crear una cadena grande en la memoria?
Me enfrenta al mismo problema. Todavía no lo he abordado, pero suponía que podría escribir en el sistema de archivos/tmp en mi trabajador con retraso en el trabajo y que se quedaría el tiempo suficiente para cargar el archivo en S3. ¡Interesado en escuchar lo que la gente sugiere! –