Heroku deploy автоматически удаляет файлы сервера?

Я новичок в HEROKU APPS .

В моем приложении heroku у меня проблема. то есть я использую php-скрипт для сохранения данных на сервере.

Пример :

 <?PHP $file = "example.txt"; $data = "Something..."; file_put_contents($file,$data); ?> 

Этот PHP-скрипт успешно выполняется и сохраняет данные отлично.

Но при развертывании моего APP в HEROKU для обновления -> в этом прецеденте файл example.txt автоматически удаляется.

Файловые системы Heroku

Поведение Heroku немного зависит от используемого вами стека. С Bamboo большая часть файловой системы доступна только для чтения . С Кедром это эфемерно .

В любом случае файловые системы не разделяются между динамиками и не должны использоваться для хранения. Чтобы надежно хранить данные на стороне сервера, вам нужно будет использовать базу данных (возможно, сохранить ваши загрузки как капли) или как внешние ресурсы на другом хосте или службе.

Heroku не предоставляет пространство на жестком диске для постоянных файлов между git-нажатиями, вам придется использовать что-то вроде Amazon S3 для хранения файлов. Вот почему Heroku называет свою файловую систему файловой системой Ephemeral . Он был даже доступен только для чтения в более ранних версиях стека.

В Heroku есть учебник по этому вопросу: использование AWS S3 для хранения статических активов и загрузки файлов

См. Документы :

Эфемерная файловая система

Каждый dyno получает свою собственную эфемерную файловую систему со свежей копией самого недавно развернутого кода. Во время работы dyno его запущенные процессы могут использовать файловую систему как временную блокнот, но никакие файлы, которые пишутся, не видны для процессов в любом другом дино, и любые записанные файлы будут отброшены в момент остановки или перезапуска dyno.

Таким образом, вы не можете сэкономить много денег с помощью своего динамика Heroku. Особенно после того, как вы переместили новую версию, dyno перезагрузится, и тогда будет сброшена файловая система.

Вам нужно хранить файлы в удаленном месте, а затем, если они должны пережить динамический сброс.