在用户会话期间,我应该在哪里存储从 Microsoft Graph API 获得的个人资料图片?
Where should I store the profile picture obtained from the Microsoft Graph API during a user's session?
我正在为一个组织创建一个网站。所有用户详细信息均从 Microsoft Graph API 中检索。我唯一需要帮助的是,在检索到当前用户个人资料图片的二进制文件后,我不知道应该将图片存储在哪里。我已经想出了如何将二进制文件转换为 base64 并将其显示在网页上,我只是不知道将图像放在哪里。我宁愿不将其存储在数据库中或将其永久存储在服务器上。我尝试过将它存储在会话令牌中,但由于会话令牌不够大,无法存储所有数据,所以没有用。我的网站使用 Python 3.7.0 和带有 Jinja2 的 Flask 作为模板系统。在前端,我使用 JavaScript 和 JQuery。任何建议将不胜感激!提前致谢。
为什么要在会话中存储用户的个人信息,因为它会在会话结束后被删除?
如果要提高 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
变量的任何地方导入它
我正在为一个组织创建一个网站。所有用户详细信息均从 Microsoft Graph API 中检索。我唯一需要帮助的是,在检索到当前用户个人资料图片的二进制文件后,我不知道应该将图片存储在哪里。我已经想出了如何将二进制文件转换为 base64 并将其显示在网页上,我只是不知道将图像放在哪里。我宁愿不将其存储在数据库中或将其永久存储在服务器上。我尝试过将它存储在会话令牌中,但由于会话令牌不够大,无法存储所有数据,所以没有用。我的网站使用 Python 3.7.0 和带有 Jinja2 的 Flask 作为模板系统。在前端,我使用 JavaScript 和 JQuery。任何建议将不胜感激!提前致谢。
为什么要在会话中存储用户的个人信息,因为它会在会话结束后被删除?
如果要提高 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
变量的任何地方导入它