Senior
Comment une image est-elle stockée dans PostgreSQL — s'agit-il d'un encodage ou d'une série de chiffres ? Comment stocker une image sous forme de texte ?
sobes.tech IA
Réponse de l'IA
Dans PostgreSQL, une image est généralement stockée sous forme de données binaires dans un champ de type bytea ou dans un objet volumineux (LOB). Ce n'est pas une encodage au sens habituel, mais simplement une séquence d'octets représentant le contenu du fichier.
Pour stocker l'image sous forme de texte, elle peut être encodée en Base64, ce qui convertit les données binaires en une chaîne ASCII pouvant être stockée dans un champ texte. Cependant, cette méthode augmente la taille des données d'environ 33 %.
Exemple de stockage d'une image en Base64 en Go:
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)
}
Dans la base, cette chaîne peut être stockée dans un champ de type text ou varchar. Si nécessaire, elle peut être décodée à nouveau en format binaire.