我应该将图像存储在MongoDB或本地文件系统中(通过Node.js)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我应该将图像存储在MongoDB或本地文件系统中(通过Node.js)相关的知识,希望对你有一定的参考价值。

我将Node.js用于我的项目。

我应该将图像存储在本地文件系统中,还是应该将其存储在MongoDB中?

哪种方式更具可扩展性?

答案

最具扩展性的解决方案是使用共享存储服务,例如亚马逊的S3(或自己制作)。

当您决定将机器添加到应用程序层时,这使您可以更容易地水平扩展,因为您不必担心任何迁移噩梦。

这背后的基本思想是保持存储层与应用层分离。因此,使用此想法,您可以在单独的计算机上创建node.js进程,该计算机接受文件上载,然后将其写入磁盘。

另一答案

如果您正在设计性能敏感系统,请毫无疑问使用文件系统来存储您的图像。

你可以在这个博客中找到性能比较:http://blog.thisisfeifan.com/2013/12/mongodb-gridfs-performance-test.html

实际上,您可以在这里找到推荐的MongoDB GridFS用例:https://docs.mongodb.com/manual/core/gridfs/#when-to-use-gridfs

另一答案

我会使用GridFS来利用分片,但为了获得最佳性能,我会使用带有nginx的文件系统。

以上是关于我应该将图像存储在MongoDB或本地文件系统中(通过Node.js)的主要内容,如果未能解决你的问题,请参考以下文章

如何在mongodb中存储文件/图像的url?

Doctrine 2 ODM MongoDB 从内存中将图像存储在 GridFS 中

如何在 Impala 中存储图像文件

将图像存储在数据库中与存储在文件系统中

我应该将图像存储在数据库还是文件夹中? [复制]

我们可以将 multer 配置为不在本地存储文件并且仅用于使用 req.files.image.path 吗?