Estoy usando Python/Django en Heroku (pila de cedro) y tengo un comando de administración que debo escribir para extraer un archivo de un depósito de S3 y procesarlo. No estoy seguro de entender cómo usar el sistema de archivos efímero. ¿Hay solo ciertos directorios que se puedan escribir? Encontré otro artículo que implicaba que solo había ciertas carpetas que podían escribirse (pero no parece aplicarse a la pila de Cedar). Encontré este dev article pero no entra en muchos detalles (nota: entiendo que es solo temporal. Solo necesito descomprimir el archivo y procesar el archivo). ¿Puedo simplemente crear una carpeta en cualquier lugar bajo la raíz de la aplicación? ¿Y cómo lo conseguiría? Parece que probablemente podría simplemente usar $ HOME. Hice un poco de prueba mediante la conexión a través deCómo usar el sistema de archivos efímero de heroku
$ heroku run bash
y en ejecución:
$ echo #HOME
devuelve:
/app
y funcionamiento:
$ mkdir $HOME/tmp
creados una carpeta en th La raíz de la aplicación y se entrega con el mismo usuario y grupo que los otros archivos y carpetas.
Entonces ... ¿me falta algo aquí? ¿Una mejor manera de hacerlo? ¿Hay una variable de entorno del sistema operativo para esto? He ejecutado "env" y no veo uno mejor.
Tenga en cuenta que, cada vez que ejecuta 'heroku run', esto activa un nuevo [dyno] único (https://devcenter.heroku.com/articles/one-off-dynos) en Heroku que * será cargado*. Puede verificar el estado de sus dynos a través de 'heroku ps' para ver si aún se están ejecutando. Al usar 'heroku run bash', el dyno está vinculado a su terminal, es decir, debe detenerse cuando cierre la sesión de su terminal (por ejemplo, con Ctrl + C). Además, el dinamómetro único no tiene acceso a los archivos de otras dinas escritos en tiempo de ejecución, por lo que 'ls', etc. no funcionará para ver qué hay en sus otras dinas (excepto en los archivos de la aplicación). – caw
@MarcoW. ¡Me gustaría resaltar la importancia de tu comentario! Esto es tan obvio que 'heroku run' hace girar un nuevo banco de pruebas. Me tomó un tiempo entender por qué no puedo acceder a través de HTTP los archivos creados a través de 'heroku run" echo test> /app/web/test.html "' ...Resulta que se crearon en un dinamómetro único y nunca se enfrentaron a la web ... –