Sobes.tech
Senior

Kaip saugomas paveikslėlis PostgreSQL — tai kažkაი kodavimas ar skaičių rinkinys? Kaip saugoti paveikslėlį kaip tekstą?

sobes.tech AI

Atsakymas iš AI

PostgreSQL dažniausiai paveikslėlis saugomas kaip dvejetainiai duomenys bytea lauke arba dideliame objekte (LOB). Tai nėra įprastas kodavimas, o tiesiog seka baitų, atvaizduojanti failo turinį.

Norint saugoti paveikslėlį kaip tekstą, jį galima užkoduoti į Base64, kuris paverčia dvejetainius duomenis į ASCII eilutę, kurią galima išsaugoti teksto lauke. Tačiau toks būdas padidina duomenų dydį maždaug 33%.

Pavyzdys, kaip Go kalba užkoduoti paveikslėlį į 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)
}

Duomenų bazėje šią eilutę galima išsaugoti kaip text arba varchar tipo laukelyje. Jei reikia, ją galima vėl dekoduoti į dvejetainį formatą.