每个用户django max文件夹编号

时间:2013-06-07 06:56:53

标签: python django django-models django-admin django-views

我在想“企业”:) 在我的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,则上述文件系统结构将崩溃。

这对此有什么最佳实践/方法?

谢谢!

2 个答案:

答案 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'