我们的团队正在将媒体库存储引擎从数据库BLOB存储切换到文件系统(我们正在使用LAMP堆栈,PHP是版本5.3)。实际上存储的所有内容都是将被提取到应用程序中的图像数据,并且将对其进行的大部分处理是对GD进行一些调整大小/重新采样。数据库存储是我们试图放弃的先前构建遗留的工件,以减少数据库服务器的压力。
之前我已经构建了一些基于文件系统的图像库,但是我想巩固一些最佳实践,因为这会变得很大,一旦填满用户数据,就很难修改
在我之前的版本中,我创建了一个具有读/写权限的'resources'文件夹。在该目录中,还有一个额外的目录层,这些目录以内容所关联的站点的“部分”命名,通常由实现其中的内容的模型或控制器的名称组织。在该层下面是用户/配置文件ID或数字命名的文件夹,它们共享数据库中确定的主要所有权中的任何主键的数量(在这种部署中,这些通常是图像所来自的所有权的图库ID,因为所有权可以通过数据库/对象模型处理特定用户的画廊。)
社区在这种情况下采用了哪种方法,哪些方法最具可扩展性?是否有任何Apache软件可以比仅仅手动将其编码到模型中更有效地处理这种组织?我尝试在SO和Google上搜索关于文件系统媒体存储的类似线程的一些搜索,但除了“不使用BLOB”之外没有找到太多的东西,我们已经或多或少已经建立了这些。有没有硬性和快速的做法?
感谢您的指导!
答案 0 :(得分:1)
签出MogileFS,它是一个分布式并行容错文件系统。
它提供自动复制,名称空间,并且可以与nginx集成(即,不需要提供内容的中间脚本)。事实证明,它比文件系统更可靠和可扩展,可以为我们的项目存储数百万张照片。