将图像保存到数据库

我正在Node中构build个人项目,我希望我的用户能够上传“封面”照片。 我现在正在使用的方法是将这些图像保存到我的fs,只需在MongoDB数据库中添加该图像的path。 所以如果用户添加一个图像,我把这个图像添加到我的图像文件夹名称让我说userID.jpg,我保存“/public/images/userID.jpg”作为string在我的数据库。 我有一种感觉,这种方法可能不是最有效的。 我应该直接将它保存到数据库? 有什么优点或缺点?

将图像存储为文件实际上是非常有效的(除非我们正在谈论10个K的图像,但仍然)。 此外,在服务方面,图像可能会像express.static() (假设您使用Express),这也是相当轻量级的东西处理。

但是,如果您最终希望获得更高的可伸缩性,那么可以使用GridFS ,它在MongoDB之上实现一个类似于存储的文件系统。 我使用gridfs-stream类似的东西(上传/下载),它工作正常。

如果图像足够小(小于约16MB,这是BSON文档的大小限制),则可能甚至不需要使用GridFS,只将图像存储为Binarytypes。