Πώς αποθηκεύεται μια εικόνα στο PostgreSQL — είναι κάποιο κωδικοποίηση ή μια σειρά αριθμών; Πώς αποθηκεύετε μια εικόνα ως κείμενο;
sobes.tech AI
Απάντηση από AI
Στο PostgreSQL, μια εικόνα αποθηκεύεται συνήθως ως δυαδικά δεδομένα σε ένα πεδίο τύπου bytea ή σε ένα μεγάλο αντικείμενο (LOB). Αυτό δεν είναι κωδικοποίηση με την κλασική έννοια, αλλά απλώς μια ακολουθία bytes που αντιπροσωπεύει το περιεχόμενο του αρχείου.
Για να αποθηκεύσετε την εικόνα ως κείμενο, μπορείτε να την κωδικοποιήσετε σε Base64, το οποίο μετατρέπει τα δυαδικά δεδομένα σε μια ASCII συμβολοσειρά που μπορεί να αποθηκευτεί σε ένα πεδίο κειμένου. Ωστόσο, αυτή η μέθοδος αυξάνει το μέγεθος των δεδομένων περίπου κατά 33%.
Παράδειγμα αποθήκευσης μιας εικόνας σε Base64 σε 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)
}
Στη βάση δεδομένων, αυτή η συμβολοσειρά μπορεί να αποθηκευτεί σε ένα πεδίο τύπου text ή varchar. Αν χρειάζεται, μπορεί να αποκωδικοποιηθεί ξανά σε δυαδική μορφή.