Domanda

Ho un'applicazione Web attualmente in fase di sviluppo in JSP/Servlet.
L'applicazione consente agli utenti di caricamento File di immagine per ciascun account utente.

Qual è il modo migliore per archiviare le immagini?
Si prega di considerare le seguenti funzionalità che vorrei avere prima della tua risposta;

  1. Sto usando MySQL ora, ma potrebbe esserci la possibilità di passare a un database diverso.

  2. Posso archiviare le immagini come file flat, ma voglio il admin account per avere un'opzione per eseguire il backup del database completo e ricaricalo più tardi. Idealmente anche il backup/ricarica dovrebbe funzionare con le immagini. (Anche se il backup è stato eseguito da una macchina fisica diversa e il ricarica è stato eseguito da una macchina diversa)

  3. L'uso di BLOB/CLOB è un'opzione che risolve il problema 2.
    Ma, E se il mio database diventa molto grande?

È stato utile?

Soluzione

Archiviarli nel file system. È più veloce e più semplice. Spesso, quando accedi a un'immagine, dovrai comunque salvarlo in un file prima di poterlo utilizzare. È possibile esaminare le immagini con strumenti di terze parti. È possibile archiviare il recordId nel nome file per evitare che l'Associazione immagine/record sia rotta.

Molti altri condividono questa opinione: http://forums.asp.net/p/1512925/3610536.aspx

Altri suggerimenti

Nel tuo caso, ti consiglio vivamente di avere un blob campo sul database e memorizza le immagini al suo interno. Principalmente, perché questo è il posto corretto per loro. Quindi, crea un servlet che recupera l'immagine dell'utente specificato dal database. Per esempio, /userimage?name=john.

Sul tuo problema "dimensioni/prestazioni":

  • I database sono stati realizzati (tra le altre cose) per archiviare e scambiare Grandi quantità di dati.
    Così, Sono l'opzione migliore.

  • Anche se li conservi su altri siti, ridurranno comunque spazio e prestazioni libere.

  • Se tu veramente Vuoi gestire dati di grandi dimensioni (> = 3TB, non il tuo caso), quindi è possibile archiviarli su un file system e salvare i filenati nel DB. Per maggiori informazioni, guarda questa domanda.

Basta archiviarli nel DB ... se la tua base di utenti "diventa molto grande" avrai secchi di contanti per acquistare un server di database a sfera (o anche una fattoria di essi) che può gestire il carico, ora ha vinto " T tu?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top