#heroku #bots
#heroku #боты
Вопрос:
У моего бота Discord есть система уровней, которая требует, чтобы он записывал данные в файл JSON.
Я размещаю его на Heroku, и в настоящее время он не обновляет файл. Я знаю, что Heroku не может сохранять данные, так есть ли способ, которым я могу закодировать его для записи в файл на моем компьютере?
Я следил за технологией с помощью руководства Тима по размещению.
Ответ №1:
Файловая система Heroku эфемерна, поэтому каждое изменение теряется после перераспределения / перезапуска Dyno.
Ваши варианты — использовать базу данных или внешнее хранилище файлов, что, вероятно, вам нужно, поскольку вам нужно сохранить файл JSON.
Heroku не может получить доступ к вашему компьютеру по сети (если вы не туннелируете запросы с помощью ngrok, что возможно, но не очень практично).
Вы можете сохранить файл в службе удаленного хранения (например, Amazon S3) или интегрировать с каким-либо другим облачным сервисом (Google docs с использованием API Google Drive).
Комментарии:
1. Это хорошо! Я попробую использовать Amazon S3. Есть ли какой-либо дополнительный код, который мне нужно добавить?
2. Вы можете использовать Java / Python API для отправки файла на Amazon (вы найдете множество примеров), Heroku имеет множество дополнений ( elements.heroku.com/addons ) интегрировать внешние сервисы, но я не делаю этого, если они бесплатны
3. Итак, все, что мне нужно сделать, это отправить файл на Amazon, а затем добавить некоторый код для доступа к файлу там?
4. Вам нужен какой-то код для отправки файла на Amazon (чтобы сохранять его всякий раз, когда вам нужно — каждые 10 минут? после определенного события?). Из Amazon S3 вы можете получить его, используя другой код (из другого приложения) или пользовательский интерфейс S3, который вы просто хотите просмотреть и получить к файлу