2013-09-24 21 views
5

In un'app che verrà distribuita su heroku ....Perché non memorizzare i file nel database?

Devo consentire agli utenti di caricare le miniature.

Un'applicazione distribuita in heroku non dispone di archiviazione permanente dei file locali.

La cosa tipica da fare qui, su google, sembra archiviare i file in Amazon S3, o forse in altri cloud storage ospitati da AWS.

Ma cosa succede se inserisco le immagini in una colonna di blob postgres?

Quali sono i lati negativi di questo? I lati positivi sono, non devono pagare per altri storage, non hanno a che fare con un sistema esterno aggiuntivo con maggiori opportunità di bug e interruzioni. Ma ci devono essere dei buoni motivi per cui nessuno sembra farlo, cosa sono?

risposta

4

Un database e S3 sono due diversi meccanismi di archiviazione. Come sono differenti?

Chi S3

Amazon S3 è un sistema di archiviazione di file altamente specializzato. Riduce al minimo le operazioni di lettura/scrittura/eliminazione dei file di base e ottimizza il caching per la visualizzazione dei dati dell'intero file archiviato.

chi Postgres

PostgreSQL è un database relazionale SQL con enorme flessibilità per l'archiviazione e indicizzazione di dati per una varietà di operazioni. Puoi benissimo racchiudere i dati di immagine binaria in una riga all'interno di Postgres.

Confrontando Cost/Scalabilità

perché si sceglie S3 sopra Postgres? Costo e scalabilità. Postgres è un generalista costoso e altamente qualificato. Su Heroku, la gestione di un database Postgres potrebbe costare centinaia o migliaia di dollari/mese in base alla quantità di dati e alla portata del traffico.

Amazon S3 è una soluzione economica e altamente scalabile che si adatta perfettamente alle vostre esigenze (scrivere un'immagine, pubblicare l'immagine nel contesto di una pagina Web).

TL; DR: Amazon S3 è altamente ottimizzato per file come immagini, altamente scalabile e relativamente economico.

+0

Qualche idea su dati sensibili che non dovrebbero essere visibili al pubblico? – abimelex

Problemi correlati