在用户会话期间,我应该在哪里存储从Microsoft Graph API获取的个人资料图片?

问题描述 投票:-3回答:1

我正在为一个组织创建一个网站。从Microsoft Graph API检索所有用户详细信息。我唯一需要帮助的是,在检索当前用户的个人资料图片的二进制文件后,我不知道应该在哪里存储图片。我已经想出如何将二进制文件转换为base64并将其显示在网页上,我只是不知道在哪里放置图像。我不希望将其存储在数据库中或永久存储在服务器上。我已尝试将其存储在会话令牌中,但由于会话令牌不足以存储所有数据,因此无效。我的网站使用Python 3.7.0和Flask与Jinja2作为模板系统。在前端,我使用JavaScript和JQuery。任何建议将不胜感激!提前致谢。

python-3.x flask login jinja2 microsoft-graph
1个回答
2
投票

为什么要在会话结束后删除会话中的用户个人信息?

如果您的API调用效率很高,更好的解决方案是使用缓存和记忆。

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

如果没有,我认为你最好的办法是将它作为BLOB存储在你的文件系统中。

[编辑]:

如果您希望它持续与会话对象一样长但由于某种原因无法使用会话对象,您可以考虑将其设置为本地_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变量的任何地方导入它

© www.soinside.com 2019 - 2024. All rights reserved.