请教下图片服务器应该如何设计文件结构?

刚刚上的独立的图片服务器,目前总共图片数量在25000左右,加上每张图片的10几个缩略图,大概有30w的图片数量,全部存在了一个文件夹中,用nginx作为web server,后面用tomcat处理动态图片的请求。

现在要上一批新图片,总量在50w,加上缩略图,文件数量在百万到千万级别,如何更好的设计文件结构,能够使查找的效率最优化?


宝慕林4294392
浏览 218回答 2
2回答

HUWWW

以前我做过一个类似的项目,也是nginx做web server;tomcat做动态请求我的文件组织分了三层url这样:http://example.com/年/月/[00-FF]随机码_widthxheight.jpeg目录结构是:年份  |_ 月份       |_ 00       |_ 01       |_ ...       |_ FF一张图片上传,00-FF的目录哈希的另外,有一个要注意的是,同一个文件夹下的文件个数不宜太多,否则读取文件的速度会变慢。很早以前,Linux Ext2还是Ext3我忘了,测试 单目录 3000 文件是个瓶颈

缥缈止盈

如果直接存储在文件系统,MD5做hash,3级目录完全可以满足图片日后图片增长需要,也可以避免图片重复存储的问题。用md5值来索引查找。/ab/cd/ef/abcd....xx.jpg存储容量可以达到36^6*1024个文件图片服务器只要保存原图既可以了,缩略图、水印等可以根据请求用ImageMagick生成。这样可以分布到别的服务器,方便迁移等/800x600/ab/cd/ef/abcd....xx.jpg/400x300/ab/cd/ef/abcd....xx.jpg......
打开App,查看更多内容
随时随地看视频慕课网APP