0

我会尽量保持简单,而不需要太多额外的信息。我一直在研究 MongoDB,我相信它会很好地用于我的下一个项目。不过,有一件事我很模糊:从 GridFS 存储和检索文件(块)。

让我们以 CMS 为例。如果我想显示(通过浏览器输出)图像,我会转到我的 MySQL 数据库,找到密钥并提取包含文件系统上文件源的元数据,然后显示带有该 href 的图像标签。我知道我可以很好地在 Mongo 中存储图像/视频/等文件,并且可以检索二进制文件,但是如果我想显示该文件(将其推送到浏览器),我是否必须将内容写入临时文件,然后回显我的带有href的img标签?那再高效不过了。

我觉得我错过了什么。在这种情况下,MongoDB 是不是更好?

澄清一下:我在典型的 LAMP 堆栈(开发而不是生产)上使用 PHP 和 Apache,并在一个平台上工作,以实现艺术家之间的创造性协作。所以,我会让几位艺术家在同一个文件上进行合作,我希望能够在这些文件中搜索、索引它们、将所有元数据放在一起并使用分片。我真的觉得 MongoDB 是要走的路。

谢谢!

迈克尔

4

1 回答 1

0

如果您想在数据库中存储二进制文件,您可以直接提供它们而无需先将它们写入文件系统。您所要做的就是编写一个 PHP 脚本(或其他任何东西)来发送数据以响应传入的 HTTP 请求,并在响应 HTTP 标头中使用正确的媒体类型。

所以如果我们谈论的是图像,在你的 HTML 中你会做这样的事情:

<img src="/your_img_script.php?image=1234"></img>

然后只需写入your_img_script.php查找图像 ID 1234 并使用image/jpeg(或其他)内容类型标头转储数据。

于 2013-09-11T01:45:34.217 回答