Где я должен хранить изображение профиля, полученное из Microsoft Graph API во время сеанса пользователя? - PullRequest
0 голосов
/ 18 сентября 2018

Я создаю веб-сайт для организации. Все пользовательские данные получены из Microsoft Graph API. Единственная вещь, в которой мне нужна помощь - это то, что после получения бинарника для картинки профиля текущего пользователя я не знаю, где мне хранить эту картинку. Я выяснил, как преобразовать двоичный файл в base64 и отобразить его на веб-странице, я просто не знаю, где разместить изображение. Я бы предпочел не хранить его в базе данных или постоянно хранить на сервере. Я экспериментировал с сохранением его в токене сеанса, но это не сработало, поскольку токен сеанса был недостаточно большим, чтобы хранить все эти данные. Мой сайт использует Python 3.7.0 и Flask с Jinja2 в качестве системы шаблонов. На переднем конце я использую JavaScript и JQuery. Любые предложения будут ценны! Заранее спасибо.

1 Ответ

0 голосов
/ 18 сентября 2018

Почему вы хотите хранить личную информацию пользователя в сеансе, если она удалена после окончания сеанса?

Если это будет эффективно с вашими вызовами API, лучшим решением будет использование кэширования и создания заметок.

https://pythonhosted.org/Flask-Caching/

Если нет, я думаю, что вам лучше всего сохранить его как BLOB в вашей файловой системе.

[EDIT]:

Если вы хотите, чтобы он продолжался до тех пор, пока ваш объект сеанса, но по какой-то причине не может использовать его, не может использовать объект сеанса, вы можете установить его как локальный _request_ctx_stack как таковой:

setattr(_request_ctx_stack.top, 'user_image', user_image)

И чтобы получить его обратно используйте:

user_image = LocalProxy(lambda: getattr(_request_ctx_stack.top, 'user_image'))

теперь вы можете импортировать его из любого места, где определена переменная user_image

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