Raw_email 帖子字段将图像存储为 Base64 字符串

您好,

由于我正考虑更换我的 CDN(Stackpath),并且我知道 Discourse 会动态地在链接中设置 CDN URL,但我还是在论坛帖子中搜索了字符串“stackpath”,以查看有多少处出现。

搜索结果在 300 到 400 篇帖子之间。

我下载了数据,令我惊讶的是,它几乎是一个 100 MB 的文件!

显然,这是因为通过电子邮件发送的帖子中的图片似乎以 base64 字符串的形式存在于 raw_email 字段中。

所以……在我看来,这似乎并不是一个真正的问题,但我希望对此能有一些澄清。

为什么图片会以这种方式存储在 raw_email 字段中?有没有更好的方法?

这会以任何方式影响性能吗?对于许多人通过电子邮件回复并且涉及图片的论坛来说,情况会怎样?我们是否可以认为它占用了太多空间,但信息量却不多?

欢迎任何解释或额外信息。 :slight_smile:

1 个赞

这听起来有点过于简化了,但电子邮件就是这样发送图片的。既然我们存储了 raw_email……那么我们存储的就是这个。

可以把它想象成一个 100MB 的收件箱。对大多数网站来说,这只是九牛一毛。

您可以使用以下命令查找存储大小:

select sum(pg_column_size(raw_email)) / 1048576 as raw_email_MB from posts;

那样的话我们就不会存储 raw_email 了……我猜可以争辩说,对于超过一定年龄的 raw_email,应该剥离大的 base64 内容……

不太可能;它会占用磁盘空间,但除非您查看它,否则不应该被引用。

:thinking:

5 个赞

谢谢你详细的回答 :slight_smile:

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.