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