Asset Management: che è il modo migliore per organizzare i file generati dall'utente su un server web?

StackOverflow https://stackoverflow.com/questions/4093177

  •  28-09-2019
  •  | 
  •  

Domanda

Siamo nel processo di costruzione di un sistema che permette agli utenti di caricare immagini e video multipli ai nostri server.

Il team con cui sto lavorando hanno deciso di salvare tutti i beni appartenenti a un utente in una cartella denominata utilizzando identificatore univoco dell'utente. Questa cartella a sua volta, sarà una sottocartella dei nostri asset principali cartella sul server di file.

La struttura del file che hanno proposto è il seguente:

[asset_root]/userid1/assets1  
[asset_root]/userid1/assets2  

[asset_root]/userid2/assets1  
[asset_root]/userid2/assets2  

etc.

Ci aspettiamo di avere migliaia o forse un milione di utenti + nel tempo di vita di questo sistema.

Ho sempre pensato che non era una buona idea avere molti sotto-cartelle in un unico luogo e ha suggerito un / mese / anno approccio giorno come segue:

[asset_root]/2010/11/04/userid1/assets1  
[asset_root]/2010/11/04/userid1/assets2  

[asset_root]/2010/11/04/userid2/assets1  
[asset_root]/2010/11/04/userid2/assets2  

etc.
Qualcuno sa

fa che degli approcci di cui sopra sarebbe più adatto per questo molti beni? Esiste un metodo migliore per organizzare le immagini / video su un server?

Il sistema in questione sarà una di Windows IIS 7.5 con una SAN.

Molte grazie in anticipo.

È stato utile?

Soluzione

In generale, lei ha ragione, in quanto molti file system impone un limite al numero di file e cartelle che possono essere in una cartella. Se si colpisce quel limite con il numero di utenti che hai, il tuo nei guai.

In generale, mi sarebbe sufficiente utilizzare un uuid per ogni immagine, con alcuni dimensione di partizionamento. per esempio. Un hash di ABCDEFGH finirebbe come [asset_root] / ABC / DEFGH. Utilizzando un hash ti dà un grado maggiore di certezza circa il numero di file che finirà in ogni cartella e ti impedisce di doversi preoccupare di, per esempio, non sapendo quale mese l'immagine che ti serve è stato conservato in.

Altri suggerimenti

sto presumendo il file system è NTFS? Se è così, hai un limite di 4,294,967,295 file sul disco - il limite di file in una cartella è lo stesso. Se si dispone nell'ordine di milioni di utenti si dovrebbe andare bene, anche se si potrebbe prendere in considerazione con una sola cartella per utente invece di più come esempio indica.

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