Consigli su quale tecnologia di archiviazione per un repository di immagini [duplicato]

0

A questo punto, non sono molto un programmatore, solido html / css, familiare con JS ma non un programmatore con qualsiasi mezzo. Sto cercando di raccogliere tutto ciò che è necessario per un progetto imminente.

Ho bisogno di creare un repository di immagini online che ospiterà circa 15k foto. Quelle foto dovranno avere i dati inseriti dall'utente associati a loro. Dovranno essere ricercabili per tag e batch scaricabile.

Vorresti sistemare filesystem o db? In sostanza, quale tipo di soluzione di archiviazione utilizzeresti?

    
posta user2680994 28.01.2014 - 06:45
fonte

3 risposte

4

L'approccio che userei tipicamente per una tale costellazione è

  • memorizza le immagini nel file system

  • usa un database per i metadati (compresi i riferimenti ai nomi dei file immagine correlati)

La ragione di questo è che avrai bisogno di indicizzazione e sicurezza transazionale per i tuoi metadati, ma in genere non per "parti" delle tue immagini (suppongo che verranno aggiornate solo aggiungendone di nuove o eliminando quelle vecchie, l'unico la cosa per le immagini è necessaria la securità transazionale per il fatto che due immagini diverse non avranno lo stesso nome di file, ma si tratta di un'operazione di metadati).

Si noti che ci sono alcuni database là fuori che possono gestire l'archiviazione esattamente in questo modo per voi, in modo da poter accedere a tutti i dati, comprese le immagini, da SQL in modo transazionale, ma il DB memorizza le immagini in file separati in lo sfondo.

    
risposta data 28.01.2014 - 08:12
fonte
1

Questa potrebbe essere una di quelle rare situazioni in cui consiglio di prendere in considerazione una soluzione di terze parti che puoi modificare. Oltre al software di galleria open source, ci sono molti plugin per gallerie per vari CMS.

Se devi scrivere tu stesso, per il volume di cui stai parlando non ha molta importanza dove metti le immagini - in ogni caso funzionerà. Ma , se ti aspetti un traffico elevato, sarebbe meglio che si trovassero sul file system, in modo che il server del database non debba gestire il sovraccarico di servire i file. Inoltre, mantenere le immagini nel file system può offrire una maggiore flessibilità per quanto riguarda i backup.

    
risposta data 28.01.2014 - 08:20
fonte
1

La memorizzazione di file nel filesystem è sicuramente una buona soluzione rapida che funziona e personalmente non consiglierei mai di archiviare i file in un database nemmeno nelle rare occasioni in cui potrebbe essere fatto.

In un'altra nota, tuttavia, considera che la memorizzazione di file nel filesystem direttamente da una web application non è in genere la soluzione pulita.

In alcuni framework, ad esempio, rompe le linee guida comuni, vedi ad esempio le linee guida JavaEE qui: link , in questo caso si interrompe il modello Server se "si creano, modificano o cancellano file nel filesystem".

Questo perché la memorizzazione dei file direttamente nel filesystem non è scalabile nel cloud in cui i server possono essere eseguiti in diverse macchine virtuali su dozzine di dischi rigidi.

In Java la soluzione suggerita sarebbe utilizzare un contenitore standard come Apache JackRabbit.

    
risposta data 28.01.2014 - 16:35
fonte

Leggi altre domande sui tag