1

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

我之前已经构建了一些这样的基于文件系统的图像库,但我想巩固一些最佳实践,因为它会变得很大,一旦它充满了用户数据,就很难修改。

在我以前的版本中,我创建了一个具有读/写权限的“资源”文件夹。在该目录中,还有一层额外的目录,这些目录以内容相关的站点“部分”命名,通常由实现其中内容的模型或控制器的名称组织。在该层下是用户/配置文件 ID 或以数字命名的文件夹,它们共享数据库中确定主要所有权的任何主键的数量(在这种部署中,这些通常是图像来自的编译库 ID,因为所有权特定用户对画廊的访问可以通过数据库/对象模型进行处理。)

社区在这种情况下使用了哪些方法,哪些方法最具可扩展性?是否有任何适用于 Apache 的软件可以比简单地将其手动编码到模型中更有效地处理这种组织?我在 SO 和 Google 上尝试了一些关于文件系统媒体存储的类似线程的搜索,但除了我们已经或多或少建立的“不要使用 BLOB”的效果之外,没有发现太多其他东西。有没有什么硬性规定的注意事项?

感谢您的指导!

4

1 回答 1

1

查看MogileFS,它是一个分布式并行容错文件系统。

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

于 2011-02-22T14:23:16.793 回答