Php 用于用户提交的可扩展目录结构

Php 用于用户提交的可扩展目录结构,php,apache2,organization,directory-structure,file-organization,Php,Apache2,Organization,Directory Structure,File Organization,我们的团队正在将媒体库存储引擎从数据库BLOB存储切换到文件系统(我们使用的是LAMP堆栈,PHP版本为5.3)。实际上,存储的所有内容都是图像数据,这些数据将被拉入应用程序,对其进行的大部分处理是使用GD进行一些大小调整/重新采样。数据库存储是从以前的构建中遗留下来的工件,为了减少数据库服务器的压力,我们正试图放弃它 我以前构建过一些类似这样的基于文件系统的映像库,但我想巩固一些最佳实践,因为这将变得越来越大,一旦它充满了用户数据,就很难修改 在以前的版本中,我创建了一个具有读/写权限的“资源

我们的团队正在将媒体库存储引擎从数据库BLOB存储切换到文件系统(我们使用的是LAMP堆栈,PHP版本为5.3)。实际上,存储的所有内容都是图像数据,这些数据将被拉入应用程序,对其进行的大部分处理是使用GD进行一些大小调整/重新采样。数据库存储是从以前的构建中遗留下来的工件,为了减少数据库服务器的压力,我们正试图放弃它

我以前构建过一些类似这样的基于文件系统的映像库,但我想巩固一些最佳实践,因为这将变得越来越大,一旦它充满了用户数据,就很难修改

在以前的版本中,我创建了一个具有读/写权限的“资源”文件夹。在这个目录中,有一个附加的目录层,它是根据内容所涉及的站点的“部分”命名的,通常是按照实现其中内容的模型或控制器的名称来组织的。在该层下是用户/配置文件ID或以数字命名的文件夹,它们共享数据库中确定主要所有权的主键的数量(在这种部署中,这些通常是图像来源公司的库ID,因为特定用户对库的所有权可以通过数据库/对象模型处理。)

社区在这种情况下使用了什么样的方法,哪些方法最具可扩展性?有没有Apache软件能够比简单地将其手动编码到模型中更有效地处理这种组织?我在SO和Google上搜索了一些文件系统媒体存储上的类似线程,但没有找到m除了我们或多或少已经确定的“不要使用BLOB”的效果之外,还有什么硬性规定吗

感谢您的指导!

请检查,这是一个分布式并行容错文件系统

它提供自动复制、名称空间,并可与nginx集成(即不需要中间脚本来提供内容)。事实证明,它比文件系统更可靠、更可扩展,可以为我们的项目存储数百万张照片。

请检查,它是一个分布式并行容错文件系统


它提供了自动复制、名称空间,并且可以与nginx集成(即不需要中间脚本来提供内容)。事实证明,它比文件系统更可靠、更具可扩展性,可以为我们的项目存储数百万张照片。

@Alexy Lebedev我已经阅读了文档-是否可以在不使用多台计算机作为存储主机的情况下使用此解决方案?目前我认为我们可以在不冗余的情况下部署并实现add如果可能的话,我们可以将传统主机放入跟踪程序中。同一台机器可以同时用作跟踪程序和存储吗?谢谢您的帮助!当然可以,因为存储主机的行为类似于HTTP服务器,它们可以位于同一台机器上。不过,我无法就配置向您提供任何具体建议,因为这些服务器都设置为up。你可以试试serverfault.com来获得这方面的建议。从程序员的角度来看,迁移数据和代码花了我们几天的时间。获得一个扁平的名称空间,不再担心目录结构和备份,这真是一种解脱。@Alexy Lebedev我一直在阅读文档-有可能利用这个解决方案吗在没有多台计算机作为存储主机的情况下进行部署?目前,我认为我们可以在不冗余的情况下进行部署,并在可能的情况下在跟踪程序中实现其他主机。同一台计算机可以同时作为跟踪程序和存储程序吗?谢谢您的帮助!当然可以,因为存储主机的作用类似于HTTP ser它们可以位于同一台机器上。不过,我无法就配置向您提供任何具体建议,因为服务器是由另一个人设置的。您可以尝试serverfault.com以获取相关建议。从程序员的角度来看,迁移数据和代码花了我们几天的时间。获得一个统一的名称让我们如释重负加快速度,不再担心目录结构和备份。