Possiamo memorizzare immagini (.jpg) nei database usando Python? Se sì, come?
Sì, potete, ma non vi dirò come, perché non dovreste. È stupido.
Ecco perché: Mentre ci sono estensioni specifiche del vendor SQL che si occupano di BLOBS (oggetti binari di grandi dimensioni), alla fine ogni sistema di database è stato creato per memorizzare una quantità relativamente piccola di dati e permettervi di interrogarli. Con la memorizzazione di immagini nel database, si impatta pesantemente l'I/O del disco dei server DBMS. Inoltre, la vostra applicazione deve prima leggere i dati dal database, che poi devono essere trasportati dal database all'applicazione e da lì al client.
Dipende un po' dal vostro caso d'uso, ma presumo che vogliate semplicemente memorizzare le immagini disponibili al pubblico da qualche altra parte piuttosto che nel filesystem. Ed è qui che entra in gioco Minio. È un'implementazione del protocollo S3 di Amazon. Quello che fareste fondamentalmente è che memorizzereste l'immagine nel server Minio che fornisce anche un server http. Quindi, fondamentalmente, memorizzi le immagini in minio e le fai visualizzare sul tuo sito web direttamente da detto server.
Ho impostato un piccolo esempio su GitHub:
GitHub - mwmahlberg/quora-flask-minio-example: Flask sample che memorizza immagini su minioFlask sample che memorizza immagini su minio. Contribuire allo sviluppo di mwmahlberg/quora-flask-minio-example creando un account su GitHub.https://github.com/mwmahlberg/quora-flask-minio-exampleQuello che fa fondamentalmente è prendere immagini tramite un modulo di upload, memorizzarle su un'istanza di minio e renderle disponibili. Tutte le immagini caricate saranno visualizzate nella pagina con il modulo di caricamento.
Nota che questo ha diversi vantaggi:
- Puoi aggiungere metadati alle immagini come potresti fare con un DBMS, e interrogarlo con una sintassi simile a SQL[1]
- Prendi il carico sia dalla tua applicazione che dal tuo DBMS.
- It is highly CDN-friendly.
- Even if you need a more granular permission system, it is easy to leverage OAUTH with minio.[2]
Footnotes
[1] Learn how to use the Select API[2] Learn how to configure MinIO for Security Token ServiceArticoli simili
- Come trasformare immagini PNG o JPG in pixel art
- Qual è il modo migliore per memorizzare i dati da Firebase a SQLite (database locale di Android)?
- Che tipo di database dovrei costruire per memorizzare i dati dei social media per un'app Android con una base di utenti target di 1.000.000?
- Che database usa Amazon per memorizzare le informazioni sui prodotti?