Senior
PostgreSQL-де сүрөт кантип сакталат — бул коддоо же сандардын топтомубу? Сүрөттү текст түрүндө кантип сактаса болот?
sobes.tech AI
AIден жооп
PostgreSQLде сүрөттү адатта bytea түрүндөгү талаада же чоң объект (LOB) катары сактайт. Бул ыкма салттуу мааниде коддоо эмес, файлдын мазмунун көрсөтүүчү байттардын жөнөкөй тизмеси.
Сүрөттү текст түрүндө сактоо үчүн, аны Base64ке коддоого болот — бул бинардык маалыматтарды ASCII сапка айлантат жана тексттик талаада сакталат. Бирок, мындай ыкма маалыматтын өлчөмүн болжол менен 33% көбөйтөт.
Go тилинде сүрөттү Base64ке коддоо мисалы:
import (
"encoding/base64"
"io/ioutil"
"log"
)
func encodeImageToBase64(path string) string {
data, err := ioutil.ReadFile(path)
if err != nil {
log.Fatal(err)
}
return base64.StdEncoding.EncodeToString(data)
}
Маалымат базасында, бул сапты text же varchar түрүндөгү талаада сактоого болот. Эгер керек болсо, аны кайра бинаралык форматка декоддоо мүмкүн.