Tengo una aplicación Django implementada en Google App Engine (entorno flexible).

¿Puedo crear archivos y eliminar archivos como este?

with open('myfile.xls', 'w') as file_object:
    #writing to file
os.remove('myfile.xls')

O usa NamedTemporaryFile?

Ahora este código funciona, pero después de algunos días después de la implementación, mi aplicación se vuelve lenta. No se trata de un arranque en frío. La redistribución lo soluciona. ¿No se pueden eliminar los archivos y desperdiciar espacio en el disco? ¿O hay otra razón?

0
Vit Amin 27 ago. 2020 a las 12:57

1 respuesta

La mejor respuesta

Incluso en el entorno estándar, esto no se recomienda. Pyhton en Std ofrece la ubicación /tmp para escribir archivos, pero dado que App Engine se amplía según sea necesario, no hay garantía de que más adelante, el archivo seguiría allí:

Sistema de archivos:

El tiempo de ejecución incluye un sistema de archivos completo. El sistema de archivos es de solo lectura, excepto la ubicación / tmp, que es un disco virtual que almacena datos en la RAM de la instancia de App Engine.

En Organizing COnfiguration Files hay una sección sobre {{X1 }}, que menciona:

Su aplicación debe estar "sin estado" para que no se almacene nada en la instancia.

En su lugar, debería utilizar Google Cloud Storage. Aquí puede encontrar un ejemplo de muestra de Python Google Cloud Storage para el entorno flexible de Google App Engine.

1
Joss Baron 28 ago. 2020 a las 17:08