我在想“企业”:) 在我的Django 1.5项目中,如果我将达到最大ext4数量的文件夹
ext3:31998 *和 ext4:64000
据我所知63.999文件夹存在问题,让我们说这是一个学术价值,最好不要有这样的数量。
E.g。用户数据文件夹。 通常,我会像这样解决
/ data / users / id_user_1,/ data / users / id_user_2,/ data / users / id_user_N 和
user_data_path = settings.DATA_PATH + user.pk
如果用户超过40,000,则上述文件系统结构将崩溃。
这对此有什么最佳实践/方法?
谢谢!
答案 0 :(得分:1)
您需要为多级结构创建子目录以容纳更多目录。
简单地说,假设40K是这样的限制。
/data/users/0/ # for 1 <= pk <= 400000
/1
/400000
/data/users/1/ # for 400001 <= pk <= 800000
/400001
/800000
....
您可以根据需要设计多个级别以及如何创建/使用级别。
答案 1 :(得分:1)
一种可能的方法是使用简单的整数除法对键空间进行分区。假设partition_size
是给定目录的允许最大值,您可以使用:
os.path.join(settings.DATA_PATH, str(user.pk // partition_size), str(user.pk))
partition_size=200
的示例:
>>> fn(101)
'\\data\\users\\0\\101'
>>> fn(201)
'\\data\\users\\1\\201'