Я хочу записать некоторые действия пользователя для моего приложения python flask, развернутого на heroku. Предложите мне способы сделать это - PullRequest
1 голос
/ 08 мая 2020

У меня развернуто приложение Python Flask на heroku. Я хочу записывать действия пользователя в файл (своего рода файл журнала). Поскольку хранилище heroku является временным, даже если я добавляю действия в файл журнала, данные теряются. Я не хочу использовать базу данных для этой простой задачи. Моя идея состоит в том, чтобы иметь API, который может изменять файлы в удаленной файловой системе. Я ищу такую ​​удаленную файловую систему (облачное хранилище) вместе с API для выполнения sh моей задачи.

Например, предположим, что у меня есть 3 кнопки в моем приложении и файл tracking.txt. Затем

, если щелкнуть button1, я хочу записать (добавить) 1 в tracking.txt.

Аналогично для button2 и button3.

Я искал inte rnet, но не нашел ничего, что могло бы соответствовать моим точным потребностям, или я не понял ни одного из их хорошо.

Любая помощь приветствуется. Заранее спасибо.

PS: Я готов изменить свою мысль, если нет другого выхода, кроме использования DB.

1 Ответ

0 голосов
/ 08 мая 2020

Одно из возможных решений - использовать Amazon S3 вместе с Boto3, SDK Amazon Web Services (AWS) для Python.

Вы можете скопировать (pu sh) ваш файл из Heroku в корзину S3 (с интервалами или после каждого изменения, это зависит от вашего logi c)

import boto3

session = boto3.session.Session()

s3 = session.client(
        service_name='s3',
        aws_access_key_id='MY_AWS_ACCESS_KEY_ID',
        aws_secret_access_key='MY_AWS_SECRET_ACCESS_KEY'
    )

# upload file from local path to S3 Bucker
s3.upload_file(Bucket='data', Key='files/file1.log', Filename='/tmp/file1.log')

One Вариант с этим подходом заключается в том, что вы можете использовать localstack для своей локальной разработки, поэтому только ваше (производственное) приложение на Heroku будет отправлять файлы на S3, а во время разработки вы можете работать в автономном режиме

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...