繁体   English   中英

Django文件系统存储大量文件

[英]Django filesystem storage for large number of files

场景:Django应用程序生成许多与不同模型中的对象相关的小文件。

在使用默认的Filestorage时,我已经做了很多搜索,以避免在单个目录中生成大量文件。

django-fsfield是唯一的开源解决方案吗? 还有其他什么可以推荐用于修复dir中的大量inode?

谢谢!

考虑将内容存储在MongoDB集合中。

由于文件很小,您可以使用包含文件内容的单个二进制字段创建MongoDB文档。 “小”在这种情况下意味着小于MongoDB文档大小限制,目前为16MB。

如果你需要存储大文件,Mongo支持使用gridfs

另请参见何时使用GridFS

我正在使用django-castor

django-castor是Django的一个可重用的应用程序,它提供了一个内容可寻址的存储后端 主类djcastor.storage.CAStorage是一种FileSystemStorage ,它将文件保存在SHA-1摘要下。

  • 无论上传同一文件多少次,它都只会被存储一次,从而消除了冗余。

  • 文件名是伪随机的,仅由十六进制字符组成,因此您不必担心文件名冲突或清理。

  • django-castor根据摘要在uploads目录django-castor片文件; 当单个目录中有太多文件时,这可以防止文件系统问题。

也可以使用自定义存储管理器,如果文件很小,请将其保存在带二进制字段的数据库模型中,并保存更多16MB的小文件,不需要使用其他数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM