QNA > P > Possiamo Memorizzare Immagini (.Jpg) Nei Database Usando Python? Se Sì, Come?

Possiamo memorizzare immagini (.jpg) nei database usando Python? Se sì, come?

main-qimg-16e2c0e6bca2adf2c9f4eb750cf70c3d-mzj

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-example

Quello 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 Service

Di Jennifer

Quali sono 10-15 applicazioni di didascalie di immagini, Deep Learning? :: Come cancellare i dati della cache dalla mia scheda SD
Link utili