2016-08-10 5 views
0

Ich habe diese Frage viel gegooglet, aber ich habe keine richtige Antwort gefunden.Wie kann ich Daten aus dem Heroku-Dateispeicher abrufen? Wo sind Dateien gespeichert?

Ich habe eine Beispiel-App auf NodeJS ohne Datenbank-Konnektivität gebaut. Während der Entwicklung habe ich Daten in einem separaten Verzeichnis gespeichert - "fakeDB", das "Tests", "Fragen", "Benutzer" -Dirs und so weiter enthält. In "Tests" gibt es JSON-Dateien repräsentieren Testdaten (eine Reihe von Fragen und Antworten).

Wenn ich App auf Heroku entfaltete, wurden Tests korrekt gespeichert. Wenn ein neuer Test erstellt wurde, wird er im Verzeichnis "Tests" gespeichert und ich kann später darauf zugreifen.

Aber wenn ich einen neuen Commit zu GH Repo schieben, wurden Tests, die in Heroku erstellt wurden, gelöscht.

Wie kann ich eine Kopie meines Heroku Repos auf dem lokalen Computer erhalten?

HINWEIS: Ich habe heroku run bash ausgeführt und auf ls gedruckt die Liste der lokalen Dateien, nicht aus der Ferne. Außerdem habe ich laufen lassen, um Verzeichnis zu trennen, aber es gab auch einen Satz meiner vorherigen Akten, ohne auf Heroku hergestellt zu werden.

Antwort

1

Heroku's filesystem is ephemeral:

Jeder dyno sein eigenes vergängliches Dateisystem erhält, mit einer neuen Kopie des zuletzt eingesetzten Code. Während der Laufzeit des Dynos können seine laufenden Prozesse das Dateisystem als temporäres Scratchpad verwenden, aber keine geschriebenen Dateien sind für Prozesse in einem anderen Dyno sichtbar und alle geschriebenen Dateien werden in dem Moment verworfen, in dem der Dyno gestoppt oder neu gestartet wird. Dies geschieht beispielsweise immer dann, wenn ein Prüfpunkt aufgrund der Anwendungsbereitstellung und etwa einmal pro Tag als Teil der normalen Prüfpunktverwaltung ersetzt wird.

Dies bedeutet, dass Sie nicht zuverlässig Dateien erstellen und auf dem lokalen Dateisystem speichern können. Sie werden nicht über Dynos verteilt und verschwinden regelmäßig. Darüber hinaus bietet Heroku keinen Mechanismus zum einfachen Abrufen generierter Dateien.

Die offizielle Empfehlung ist use something like Amazon S3 zum Speichern von Uploads, generierten Dateien usw. Natürlich kann eine Datenbank besser passen, je nachdem, was in Ihren Dateien enthalten ist.

+0

Vielen Dank !!! – Max

Verwandte Themen