2012-03-04 46 views
5

Sto eseguendo un sito Web che gestisce caricamenti multimediali per uno dei suoi principali usi. Mi chiedo quali sono le best practice o gli standard del settore per organizzare un sacco di file caricati dall'utente su un server.Organizzazione di molti caricamenti di file

risposta

3

Non credo che otterrete risposte concrete a meno che non forniate più contesto e descrivete quali sono i casi d'uso per i file. Come ogni altra decisione tecnologica, la "migliore pratica" sarà sempre un compromesso tra i diversi requisiti funzionali e non funzionali, e come tale la domanda ha bisogno di molto più contesto per fornire risposte su cui poter agire e agire.

Detto questo, qui sono alcune delle strategie vorrei prendere in considerazione opzioni audio:

1) utilizzare le convenzioni dettate dal consumatore dei file. Ad esempio, se i file verranno utilizzati da una soluzione CMS/publishing, il sistema probabilmente dispone di una soluzione standardizzata per la gestione dei file.

2) Utilizzare una soluzione di caricamento di terze parti. Ci sono un sacco di strumenti che possono aiutarti a guidare una soluzione che risolva il tuo problema specifico. Strumenti come Transloadit, Zencoder e Encoding hanno tutti diverse opzioni per la gestione degli upload. Dare un'occhiata a queste opzioni dovrebbe darti un'idea di cosa potrebbe essere considerato "standard del settore".

3) Cerca soluzioni provate e imita le parti che si adattano alla tua custodia. Esistono soluzioni open source che gestiscono il tipo di cose che stai descrivendo qui. Dai un'occhiata ai diversi plug-in, ad esempio paperclip, per sapere come organizzano i file o, ancora più importante, quali astrazioni forniscono che ti consentono di cambiare idea quando cambiano i requisiti.

4) Progetta la tua soluzione. Fai un picco, è uno dei modi più efficienti di esporre i requisiti a cui non hai pensato. Prova a integrare uno degli strumenti menzionati sopra e osserva come va. Il software è morbido, quindi nessuna decisione è definitiva. Forse la soluzione migliore è semplicemente provare qualcosa e cambiarla quando non si adatta più.

Questa probabilmente non è la risposta concreta che stavi cercando, ma come ho detto all'inizio, le decisioni di progettazione sono sempre un compromesso, la "migliore pratica" in un contesto potrebbe essere la soluzione peggiore in un altro contesto:)

Buona fortuna!

1

Da quello che ho capito, vuoi un suggerimento su come memorizzare i file. Se è quello che vuoi, ti suggerirei di avere 2 diversi sistemi di archiviazione per i tuoi file.

Il primo stoccaggio sarebbe un posto per memorizzare il file fisico, come una directory sul server (w/o abilitato FTP, accessibili o no ai browser, ...) o andare per Amazon S3 (aws.amazon.com/en/s3/), Rackspace CloudFiles (www.rackspace.com/cloud/cloud_hosting_products/files/) o qualsiasi altra soluzione di archiviazione (puoi persino scegliere la casella personale, se lo desideri). Tutte queste opzioni offrono API per salvare/recuperare i file.

Il secondo archivio sarebbe un database, per indicizzare e controllare i file. Sul DB, che potrebbe essere MySQL, MSSQL o un database non relazionale, come Amazon DynamoDB o SimpleSQL, puoi impostare il link al tuo file (http link, il percorso del file o qualcosa del genere).

Inoltre, sul DB è possibile controllare e memorizzare qualsiasi metadata del file desiderato e scegliere una o più soluzioni di @ ebaxt per ottenerlo. I metadati possono essere versioni precedenti del file, le parole di un file di testo, il modello di fotocamera e la geo-localizzazione di un'immagine, ecc. Ovviamente dipende dalle tue esigenze e da come verrà realmente utilizzata. Hai un numero molto elevato di opzioni, ma senza ulteriori informazioni su ciò che fingi di fare è difficile suggerirti una soluzione.

Su Amazon zona tutorial (http://aws.amazon.com/articles/Amazon-S3?browse=1) si possono trovare molti articoli su di esso, come Netflix's Transition to High-Availability Storage Systems, Using the Java Persistence API with Amazon SimpleDB e Petboard: An ASP.NET Sample Using Amazon S3 and Amazon SimpleDB

Saluti .

8

La tua domanda è eccezionalmente ampia, ma presumo che tu stia parlando di archiviazione/organizzazione/gerarchia dei file (piuttosto che piattaforma/infrastruttura).

Un approccio tipico per l'organizzazione consiste nel caricare i file su una struttura gerarchica a 3 livelli basata sul nome file stesso.

Es. Nome file = "My_Video_12.mpg"

che sarebbe poi essere memorizzati in,

/M/Y/_/My_Video_12.mpg 

Oppure un altro esempio, "a9usfkj_0001.jpg"

/a/9/u/a9usfkj_0001.jpg 

In questo modo, si finisce con un gestibile struttura che rende facile localizzare la posizione di un file basandosi semplicemente sul suo nome. Garantisce inoltre che le directory non aumentino a dismisura e diventino incredibilmente lente nell'accesso.

Solo un'idea, ma potrebbe valere la pena di essere più esplicito in merito a quale sia la tua domanda.

+0

Questa è una buona idea, grazie! – Staysee

+0

Ottima risposta. Grazie! –

Problemi correlati