Senior
Kā tiek glabāta attēla PostgreSQL — tā ir kāda kodēšana vai skaitļu kopums? Kā attēlu glabāt kā tekstu?
sobes.tech AI
Atbilde no AI
PostgreSQL parasti attēls tiek glabāts kā binārie dati bytea laukā vai lielajā objektā (LOB). Tas nav parastais kodējums, bet vienkārši secība no baitiem, kas pārstāv faila saturu.
Lai saglabātu attēlu kā tekstu, to var kodēt Base64 formātā — tas pārvērš bināros datus ASCII virknes formā, ko var saglabāt teksta laukā. Tomēr šī metode palielina datu apjomu aptuveni par 33%.
Piemērs, kā Go valodā kodēt attēlu Base64 formātā:
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)
}
Šo virkni datu bāzē var saglabāt kā text vai varchar tipu. Ja nepieciešams, to var atkal dekodēt atpakaļ binārā formātā.