Sobes.tech
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 տիպի դաշտում: Եթե անհրաժեշտ է, այն կարող է վերակոդավորվել կրկին բինար ձևաչափ։