Sobes.tech
Senior

PostgreSQL'de bir resim nasıl saklanır — bu bir kodlama mı yoksa bir dizi sayı mı? Bir resmi metin olarak nasıl saklarım?

sobes.tech yapay zeka

AI'dan gelen yanıt

PostgreSQL'de, genellikle bir resim bytea türünde bir alanda veya büyük nesne (LOB) olarak saklanır. Bu, alışılmış anlamda bir kodlama değil, sadece dosyanın içeriğini temsil eden bayt dizisidir.

Resmi metin olarak saklamak için, Base64'e kodlayabilirsiniz — bu, ikili verileri ASCII dizisine dönüştürür ve metin alanında saklanabilir. Ancak, bu yöntem verilerin boyutunu yaklaşık %33 artırır.

Go'da Base64 ile resim saklama örneği:

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)
}

Veritabanında, bu dize text veya varchar türündeki bir alanda saklanabilir. Gerekirse, tekrar ikili formata çözülebilir.