2
votes

Écrire dans un fichier dans App Engine: comment afficher ce fichier par la suite?

J'ai réussi à mettre en place et à exécuter l'exemple "Quickstart for Python 3 in the App Engine Standard Environment", et j'ai pensé que j'essaierais d'approfondir un peu mes connaissances, peut-être en essayant de lancer une tâche cron.

p> J'ai donc mis à jour le code python, en ajoutant un autre point de terminaison, un compteur, comme ceci:

@app.route('/counter')
def counter():
    with open('counter.txt', 'a') as the_file:
        the_file.write('Hello\n')

    return 'Counter incremented'

J'ai l'intention d'avoir le travail cron périodiquement sur / compteur. Lorsque ce point de terminaison est atteint, il ouvrira le fichier et y ajoutera une ligne. Le point de terminaison / counter fonctionne sur ma machine locale. Après avoir déployé ce code mis à jour sur le cloud Google, si je vais sur mon url blahblah.appspot.com/counter, il devrait mettre à jour ce fichier "counter.txt".

Ma question est la suivante: comment puis-je voir ce fichier pour savoir s'il est mis à jour ou non? Comment afficher ce fichier dans le cloud? Merci.


0 commentaires

3 Réponses :


1
votes

Vous ne devez pas écrire dans le système de fichiers local de Google App Engine. Il peut être visible ou non par votre application lors de sa mise à l'échelle.

Google Cloud Storage est la méthode préférée de stockage de fichiers.

https://cloud.google.com/appengine / docs / standard / python3 / using-cloud-storage


0 commentaires

3
votes

Il n'est pas possible d'écrire des fichiers dans l'environnement Python3 standard de Google App Engine, sauf dans le répertoire / tmp . Comme indiqué dans la documentation officielle de Python3 GAE :

Le runtime inclut un système de fichiers complet. Le système de fichiers est en lecture seule, à l'exception de l'emplacement / tmp , qui est un disque virtuel stockant des données dans la RAM de votre instance App Engine.

Je suis d'accord avec la réponse de @Josh J, vous devriez plutôt utiliser Google Cloud Storage.


0 commentaires

0
votes

Pour python 2.7, vous pouvez importer un module à partir d'une chaîne au lieu d'un fichier, vous pouvez voir dans cette réponse: https://stackoverflow.com/a/7548190/8244338


0 commentaires