Почему приложение 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 получает свою собственную эфемерную файловую систему со свежей копией самого последнего развернутого кода. В течение времени существования динамометрического стенда его запущенные процессы могут использовать файловую систему в качестве временной блокнота, но записанные файлы не видны процессам в любом другом динамометрическом стенде, и любые записанные файлы будут отброшены в тот момент, когда динамометрический блок остановлен или перезапущен. Например, это происходит каждый раз, когда динамо заменяется из-за развертывания приложения и примерно один раз в день в рамках обычного управления динамо.

Другие вопросы по тегам