2012-03-04 10 views
5

Estoy ejecutando un sitio web que maneja cargas multimedia para uno de sus usos principales. Me pregunto cuáles son las mejores prácticas o estándar de la industria para organizar una gran cantidad de archivos cargados por el usuario en un servidor.Organizar muchas cargas de archivos

Respuesta

3

No creo que vayas a obtener respuestas concretas a menos que proporciones más contexto y describas cuál es el caso de uso para los archivos. Al igual que cualquier otra decisión tecnológica, la "mejor práctica" siempre será un compromiso entre los diferentes requisitos funcionales y no funcionales, y como tal, la pregunta necesita mucho más contexto para generar respuestas a las que pueda acudir y actuar.

Dicho esto, aquí están algunas de las estrategias que consideraría las opciones de sonido:

1) Usar las convenciones dictadas por el consumidor de los archivos. Por ejemplo, si los archivos van a ser utilizados por una solución de CMS/publicación, ese sistema probablemente tenga alguna solución estandarizada para manejar archivos.

2) Use una solución de carga de terceros. Existen varias herramientas que pueden guiarlo hacia una solución que resuelva su problema específico. Las herramientas como Transloadit, Zencoder y Encoding tienen diferentes opciones para manejar las cargas. Echar un vistazo a esas opciones debería darle una idea de lo que podría considerarse "estándar de la industria".

3) Mire las soluciones probadas e imite las piezas que se adaptan a su caso de uso. Existen soluciones de código abierto que manejan el tipo de cosas que está describiendo aquí. Eche un vistazo a los diferentes complementos, por ejemplo, paperclip, para aprender cómo organizan los archivos o, lo que es más importante, qué abstracciones proporcionan, que le permiten cambiar de opinión cuando cambian los requisitos.

4) Diseñe su propia solución. Haz un pico, es una de las maneras más eficientes de exponer los requisitos que no has pensado. Intente integrar una de las herramientas mencionadas anteriormente y vea cómo funciona. El software es suave, por lo que ninguna decisión es definitiva. Tal vez la mejor solución es probar algo y cambiarlo cuando ya no le quede.

Probablemente esta no sea la respuesta concreta que buscaba, pero como mencioné al principio, las decisiones de diseño siempre son un compromiso, las "mejores prácticas" en un contexto podrían ser la peor solución en otro contexto:)

Mejor suerte!

1

Por lo que entiendo, quiere una sugerencia sobre cómo almacenar los archivos. Si es eso lo que quiere, le sugiero que tenga 2 sistemas de almacenamiento diferentes para sus archivos.

El primer almacenamiento sería un lugar para almacenar el archivo físico, como un directorio en su servidor (sin FTP habilitado, accesible o no a navegadores, ...) o vaya a Amazon s3 (aws.amazon.com/en/s3/). Rackspace CloudFiles (www.rackspace.com/cloud/cloud_hosting_products/files/) o cualquier otra solución de almacenamiento (incluso puede elegir Dropbox, si lo desea). Todas estas opciones ofrecen API para guardar/recuperar los archivos.

El segundo almacenamiento sería una base de datos, para indexar y controlar los archivos. En la base de datos, que podría ser MySQL, MSSQL o una base de datos no relacional, como Amazon DynamoDB o SimpleSQL, estableces el enlace a tu archivo (enlace http, la ruta al archivo o algo como esto).

Además, en la base de datos puede controlar y almacenar cualquier metadato del archivo que desee y elegir una o varias soluciones de @ebaxt para obtenerlo. Los metadatos pueden ser versiones anteriores del archivo, las palabras de un archivo de texto, el modelo de la cámara y la ubicación geográfica de una imagen, etc. Por supuesto, depende de sus necesidades y de cómo se usarán realmente. Tienes una gran cantidad de opciones, pero sin más información de lo que pretendes hacer es difícil sugerirle una solución.

El área de tutoriales Amazon (http://aws.amazon.com/articles/Amazon-S3?browse=1) se pueden encontrar muchos artículos al respecto, como Netflix's Transition to High-Availability Storage Systems, Using the Java Persistence API with Amazon SimpleDB y Petboard: An ASP.NET Sample Using Amazon S3 and Amazon SimpleDB

Saludos .

8

Su pregunta es excepcionalmente amplia, pero supongo que está hablando de almacenamiento/organización/jerarquía de los archivos (en lugar de plataforma/infraestructura).

Un enfoque típico para la organización es cargar archivos en una estructura jerárquica de 3 niveles basada en el nombre del archivo.

Por ejemplo. Filename = "My_Video_12.mpg"

que luego se almacena en,

/M/Y/_/My_Video_12.mpg 

Otro ejemplo, "a9usfkj_0001.jpg"

/a/9/u/a9usfkj_0001.jpg 

De esta manera, se termina con un manejable estructura que hace que sea fácil localizar la ubicación de un archivo simplemente en función de su nombre. También asegura que los directorios no crezcan a gran escala y se vuelvan increíblemente lentos para acceder.

Solo una idea, pero valdría la pena ser más explícito en cuanto a su pregunta.

+0

¡Es una buena idea, gracias! – Staysee

+0

Excelente respuesta. ¡Gracias! –

Cuestiones relacionadas