2017-07-21 1 views
0

J'utilise Parse Server sur Heroku et je me demande si je suis capable d'enregistrer des fichiers à heroku via le code cloud.Enregistrer des fichiers dans le système de fichiers Heroku à l'aide du code Parse Cloud?

Quelque chose comme ceci:

Code Cloud (main.js):

Parse.Cloud.define("saveFile", function(request, response) { 
    fs.writeFile("test", "helloworld", function(err) { 
     if(err) { 
      return console.log(err); 
     } 
     console.log("The file was saved!"); 
    }); 
} 

alors appeler cette fonction via l'appel boucle dans le terminal:

boucle -X POST -H " X-Parse-Application-Id: votre application "-H" Content-Type: application/json "https://your-parse-server.herokuapp.com/parse/functions/saveFile

dans les journaux heroku, je suis capable de voir la console qui imprime "Le fichier a été sauvegardé", cependant, quand j'ai regardé dans le répertoire heroku/app (via heroku CLI: heroku run ls) le fichier "test" n'était pas listé .

Mes questions:

  1. je ne suis pas en mesure de créer un fichier et enregistrez-le système de fichiers Heroku?
  2. Le fichier est-il sauvegardé, mais le répertoire du fichier me est caché?
  3. Y at-il un moyen de vérifier que le fichier est enregistré?
  4. Y a-t-il un moyen d'accéder au fichier créé (s'il est sauvegardé)?

Merci d'avance!

Répondre

1

Non, ce n'est pas possible. Heroku a un ephemeral filesystem. Chaque fois que vous déployez votre application, ils construisent un conteneur sur lequel cette version de votre code peut s'exécuter. Ce conteneur est ensuite récupéré et exécuté en tant que dynos.
Si vous écrivez des fichiers sur le disque, ils ne seront pas conservés en dehors du conteneur en cours d'exécution (aucun autre dyno ne les aura et ils seront définitivement perdus lorsque l'application sera redémarrée/déployée). Toute modification de code que vous souhaitez apporter à votre application nécessite un nouveau déploiement.

+0

Signification du fichier temporaire à droite? Si oui, alors est-il possible d'accéder à ce "fichier temporaire" qui a été créé par cette fonction? –

+0

Oui, le fichier est temporaire. Le processus en cours d'exécution pourrait accéder au fichier, oui. Mais vous ne pouviez pas y accéder avec 'heroku run', ou une fois l'application redémarrée. –

+0

est le fichier enregistré dans un dossier temporaire caché ou quelque chose? car une fois que j'ai couru ce code et le journal dit "Le fichier a été enregistré!", j'ai essayé heroku run ls sur la console heroku et je ne pouvais pas voir le fichier prévu. Est-ce que je manque quelque chose? –