Raw_email-Post-Feld speichert Bilder als Base64-Strings

Hallo,

Da ich überlege, mein CDN (Stackpath) zu wechseln, und weiß, dass Discourse die CDN-URLs dynamisch in Links einfügt, habe ich dennoch nach dem String „stackpath“ in den Beiträgen meines Forums gesucht, um zu sehen, wie viele Vorkommen es gibt.

Es gab zwischen 300 und 400 Beiträge zurück.

Ich habe die Daten heruntergeladen und war überrascht, dass die Datei fast 100 MB groß ist!

Anscheinend liegt das daran, dass Bilder in Beiträgen, die per E-Mail gesendet werden, als Base64-Strings im Feld raw_email vorhanden sind.

Also… Soweit ich das sehe, scheint das kein wirkliches Problem zu sein, aber ich hätte gerne einige Klarstellungen dazu.

Warum werden Bilder auf diese Weise im Feld raw_email gespeichert? Gibt es keine bessere Möglichkeit, dies zu tun?
Kann sich das in irgendeiner Weise auf die Leistung auswirken? Was ist mit Foren, in denen viele Leute per E-Mail antworten und Bilder beteiligt sind? Könnten wir davon ausgehen, dass dies zu viel Platz für wenig Informationen beansprucht?

Jede Erklärung oder zusätzliche Information dazu ist willkommen. :slight_smile:

1 „Gefällt mir“

Das klingt vielleicht etwas vereinfachend, aber so werden Bilder per E-Mail versendet. Und da wir die raw_email speichern… speichern wir das.

Stellen Sie sich das wie eine 100-MB-Inbox vor. Das ist für die meisten Websites nur ein Tropfen auf den heißen Stein.

Sie können die Speichergröße mit folgendem Befehl ermitteln:

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

In diesem Fall würden wir die raw_email nicht mehr speichern… Ich nehme an, man könnte argumentieren, dass große Base64-Inhalte aus raw_emails, die älter als ein bestimmtes Datum sind, entfernt werden sollten…

Wahrscheinlich nicht; es wird auf der Festplatte liegen, sollte aber nicht referenziert werden, es sei denn, Sie schauen es sich an.

:thinking:

5 „Gefällt mir“

Vielen Dank für die detaillierte Antwort :slight_smile:

1 „Gefällt mir“

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