1

我们正在构建一个系统,允许用户将多个图像和视频上传到我们的服务器。

我正在与之合作的团队决定将属于用户的所有资产保存在使用用户唯一标识符命名的文件夹中。该文件夹又将是文件服务器上主要资产文件夹的子文件夹。

他们提出的文件结构如下:

[asset_root]/userid1/assets1  
[asset_root]/userid1/assets2  

[asset_root]/userid2/assets1  
[asset_root]/userid2/assets2  

etc.

我们期望在该系统的生命周期内拥有数千甚至可能超过一百万的用户。

我一直认为将许多子文件夹放在一个位置并不是一个好主意,并建议采用如下年/月/日的方法:

[asset_root]/2010/11/04/userid1/assets1  
[asset_root]/2010/11/04/userid1/assets2  

[asset_root]/2010/11/04/userid2/assets1  
[asset_root]/2010/11/04/userid2/assets2  

etc.

有谁知道上述哪种方法更适合这么多资产?有没有更好的方法来组织服务器上的图像/视频?

有问题的系统将是带有 SAN 的 Windows IIS 7.5。

提前谢谢了。

4

2 回答 2

1

一般来说,您是正确的,因为许多文件系统对可能位于一个文件夹中的文件和文件夹的数量施加了限制。如果你的用户数量达到了这个限制,你就有麻烦了。

一般来说,我会简单地为每个图像使用一个uuid,并进行一些分区。例如,ABCDEFGH 的哈希最终将作为 [asset_root]/ABC/DEFGH。使用散列可以让您更好地确定每个文件夹中的文件数量,并让您不必担心,例如,不知道您需要的图像存储在哪个月份。

于 2010-11-04T01:42:37.147 回答
0

我假设您的文件系统是NTFS?如果是这样,则磁盘上的文件限制为 4,294,967,295 - 文件夹中的文件限制是相同的。如果您有数百万用户,您应该没问题,但您可能希望考虑每个用户只有一个文件夹,而不是您的示例所示的多个文件夹。

于 2010-11-04T02:16:52.157 回答