为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

宝慕林4294392 2023-04-15 17:13:02
刚刚上的独立的图片服务器,目前总共图片数量在25000左右,加上每张图片的10几个缩略图,大概有30w的图片数量,全部存在了一个文件夹中,用nginx作为web server,后面用tomcat处理动态图片的请求。现在要上一批新图片,总量在50w,加上缩略图,文件数量在百万到千万级别,如何更好的设计文件结构,能够使查找的效率最优化?
查看完整描述

2 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

以前我做过一个类似的项目,也是nginx做web server;tomcat做动态请求
我的文件组织分了三层
url这样:

http://example.com/年/月/[00-FF]随机码_widthxheight.jpeg

目录结构是:

年份  |_ 月份
      |_ 00
      |_ 01
      |_ ...
      |_ FF

一张图片上传,00-FF的目录哈希的
另外,有一个要注意的是,同一个文件夹下的文件个数不宜太多,否则读取文件的速度会变慢。
很早以前,Linux Ext2还是Ext3我忘了,测试 单目录 3000 文件是个瓶颈


查看完整回答
反对 回复 2023-04-18
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

如果直接存储在文件系统,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
......


查看完整回答
反对 回复 2023-04-18
  • 2 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信