文件路径的生成方式有很多
比如year/month/day/timestamp.jpg
但是这种方式的缺点是,每个目录下的文件数量都很不均匀,造成空间和性能上的浪费,还可能会出现重复文件的存在。
注:所有文件系统的每个目录下所能容纳的文件数量是有限的。当项目数量过大的时候,会降低文件索引速度,所以权衡一个目录下应该保存多少文件是很必要的。保存得多了会影响性能,保存得少了会造成目录太多和空间浪费。
而类似这种形式,a4/h3/a4h31191622119e32f5f3dl.jpg
其实是通过hash来创建的目录,可以对[当前时间+文件名]进行hash运算,hash结果的前2位作为一级目录,第3、4位作为二级目录,hash同时也作为文件名。
这样每级目录最多有16×16=256个子目录
不过还有个小问题,就是有极小的几率两个文件的hash相同,文件数量不是特别大的话可以忽略不计。
实在不放心可以通过更改目录的hash来改进,比如只用文件名的hash作为目录名
发表评论
抢沙发~