Possiedo un'applicazione Web che memorizza molti file generati dall'utente. Attualmente questi sono tutti memorizzati sul filesystem del server, che ha diversi aspetti negativi per me.Archiviazione file per applicazioni Web: motori Filesystem vs DB vs NoSQL
- quando ci muoviamo "cartelle" (come definito dalla nostra applicazione) abbiamo anche per spostare i file su disco (anche se questo è più a causa di decisioni di progettazione strane da parte degli sviluppatori originali di un requisito di memorizzare cose sul filesystem).
- È difficile scrivere test per le azioni del file system; Ho una classe di filesystem finta che registra azioni come move, delete etc, senza eseguirle, che più o meno fa il lavoro, ma non ho il 100% di confidenza nei test.
- Aggiungerò altri lavori che richiedono l'accesso ai file da altri servizi per eseguire attività aggiuntive (ad esempio l'indicizzazione in Solr, la generazione di anteprime, la conversione del formato film), quindi ho bisogno di ottenere i file da remoto. Fare questo su condivisioni di rete sembra insicuro ...
- Occuparsi di autorizzazioni sul filesystem come a volte ci ha dato problemi in passato, anche se ora che ci siamo trasferiti in un ambiente Linux puro questo dovrebbe essere meno di un problema.
Quindi, le mie domande principali sono
- Quali sono gli aspetti negativi di memorizzazione di file come BLOB in MySQL?
- Gli stessi problemi esistono con i sistemi NoSQL come Cassandra?
- Qualcuno ha altri suggerimenti che potrebbero essere appropriati, ad es. MogileFS, ecc.?
Grazie, sembra una serie di collegamenti molto utile. La memorizzazione di immagini/blob di qualsiasi tipo è ciò che cerco (stiamo memorizzando tutti i tipi di materiale). –
Grazie, i tuoi link suggeriti sono fantastici. Chiaramente ho bisogno di cercare più duro prima di fare domande :) In conclusione, evitando il DB sembra la strada da percorrere. Ho solo bisogno di disaccoppiare l'applicazione dal filesystem un po 'in modo che sia meno doloroso ... –
Felice di averli trovati utili. E condivido questa conclusione. –