2012-07-02 14 views
5

Escenario: Una aplicación Django genera una gran cantidad de archivos pequeños relacionados con objetos en diferentes modelos.Almacenamiento de sistema de archivos Django para una gran cantidad de archivos

He hecho una gran cantidad de búsquedas para evitar la generación de una gran cantidad de archivos en un único directorio, cuando se utiliza el almacenamiento de archivos predeterminado.

¿Es django-fsfield la única solución de código abierto para esto? ¿Alguna otra cosa que recomendarías para arreglar la gran cantidad de inodos en un directorio?

¡Gracias!

Respuesta

2

Considere almacenar el contenido en una colección MongoDB.

Como los archivos son pequeños, puede crear documentos MongoDB con un solo binary field que contenga el contenido del archivo. "Pequeño" en este caso significa menos del límite de tamaño del documento MongoDB, actualmente 16 MB.

Si necesita almacenar archivos grandes, Mongo lo admite con gridfs.

Véase también When to use GridFS.

0

También puede usar un administrador de almacenamiento personalizado que si es pequeño, guárdelo en un modelo de base de datos con campo binario y guarde archivos pequeños de más de 16MB y no necesita usar otra base de datos.

2

Estoy usando django-castor.

django-ricino es una aplicación de re-utilizable para Django que proporciona un backend almacenamiento de contenido direccionable. La clase principal, djcastor.storage.CAStorage, es un tipo de FileSystemStorage que guarda los archivos en su compendio SHA-1.

  • No importa cuántas veces se carga el mismo archivo, que siempre será solamente almacenan una vez, lo que elimina la redundancia.

  • Los nombres de los archivos son pseudoaleatorias y están formados únicamente por caracteres hexadecimales, por lo que no tiene que preocuparse por colisiones o desinfección de los nombres de los archivos.

  • django-castor fragmentos de archivos en el directorio de carga basado en sus resúmenes ; esto evita los problemas del sistema de archivos cuando hay demasiados archivos en un único directorio .

Cuestiones relacionadas