【发布时间】:2021-09-01 11:34:13
【问题描述】:
我是 Django 的新手,我正在寻找在我的 Dajango 数据库/服务器上存储 Base64 图像的最佳方式。
我的目标是能够通过 http 请求发送批量图像,因此将它们作为编码的 Base64 图像发送是有意义的,我最终可能会在网页上呈现它们,但它们主要会被发送到桌面应用程序分批。
查看其他几篇帖子后,似乎有三种方法,但我不确定哪种方法最适合我的需求。
- 在模型 TextField 中存储 Base64 字符串
- 在 FileField 中存储 Base64 字符串
- 将图像存储在图像字段中,并在需要时将其转换为 Base64
我对选项 1 的担忧是在数据库中存储大型文本字段会影响性能,但是就像我说我是新手,所以我真的不知道。
选项 2 对我来说似乎很有意义,因为这类似于 django 处理图像的方式,将它们存储在其他位置并仅引用数据库中的位置。但是,我不确定这是否仅仅是因为 sqlite 不支持这种类型的字段。我还看到了额外开销的可能性,必须打开和读取文件而不是仅读取文本字段。
由于我的用例,最后选项 3 似乎是一个相当没有吸引力的选项,因为这些 base64 图像将主要通过 http 请求分批发送,所以我认为最好存储转换后的版本而不是对每个图像进行编码每个请求。
我非常感谢社区提供的关于哪种方法对我来说最有意义的见解。你有什么想法?
跟进问题,如果我打算将我的数据库转换为 Postgres,我应该采用哪种方法有什么变化吗?
【问题讨论】:
-
通常最好使用文件系统存储文件,因为数据库对数据的编码效率较低,因此需要更多带宽。