![](/img/trans.png)
[英]django python cumulus - How to deal with uploading a large number of files to cloud file storage
[英]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.