Почему приложение heroku не сохраняет новый файл с Tiddlywiki?
Кто-нибудь встречал такую проблему, как я раньше?
Я развернул TiddlyWiki5 на heroku в виде приложения на https://jameswiki.herokuapp.com/. Он отображался и работал как ожидалось во время выполнения. Тем не менее, после того, как сервер (web dyno) спит и просыпается (часто через 1 час бездействия), все ясно.
Я проверил свою консоль в heroku при создании нового Tiddle, он по-прежнему говорил, что новый Tiddle был сохранен, но на самом деле новый tiddle не сохраняется в папке Tiddlers. Ниже приведен мой скрипт для установки и запуска:
В Package.json
{
...
"scripts": {
"start": "tiddlywiki . --server",
"postinstall": "npm install -g tiddlywiki"
}
}
В прокфиле
web: tiddlywiki . --server $PORT $:/core/save/all text/plain text/html "" "" 0.0.0.0
Помогите мне исправить эту проблему. Благодарю.
1 ответ
Файловая система Heroku эфемерна - она существует только тогда, когда существует dyno. Когда dyno перезапускается или заканчивается (как это происходит, когда приложение переходит в спящий режим), у нового будет новая, пустая файловая система. Если вы хотите, чтобы файлы сохранялись, вам нужно сохранить их во что-то вроде базы данных или Amazon S3 для длительного хранения.
https://devcenter.heroku.com/articles/dynos
Каждый dyno получает свою собственную эфемерную файловую систему со свежей копией самого последнего развернутого кода. В течение времени существования динамометрического стенда его запущенные процессы могут использовать файловую систему в качестве временной блокнота, но записанные файлы не видны процессам в любом другом динамометрическом стенде, и любые записанные файлы будут отброшены в тот момент, когда динамометрический блок остановлен или перезапущен. Например, это происходит каждый раз, когда динамо заменяется из-за развертывания приложения и примерно один раз в день в рамках обычного управления динамо.