上传文件 MongoDB
Uploading files in MongoDB
在 MongoDB 中上传文件的最佳做法是什么。我最近遇到了 Multer。它易于使用,但它上传文件系统中的文件而不是直接上传到 MongoDB.
Multer 是 Busboy 的高级包装器,遗憾的是它没有使用 Stream
unless you're writing a StorageEngine
进行回调。您非常想要一个流的原因是,否则您必须先将整个文件缓冲到 Node 进程的内存中,然后才能对其进行任何操作。流效率更高,允许您在接收数据的同时将数据流式传输到某处,仅在内存中缓冲以防万一您无法以与接收数据相同的速率将数据传输到某处。
将自定义 StorageEngine
与 gridfs-stream 相结合将允许您在接收数据时将数据实时写入 GridFS(例如,用户仍在上传)。
我为 Multer 找到了两个 GridFS 存储引擎:
https://github.com/ISMAELMARTINEZ/gridfs-storage-engine
https://github.com/arjandepooter/multer-gridfs
后者似乎没有任何文档,但通过查看源代码仍然很容易使用。
在 MongoDB 中上传文件的最佳做法是什么。我最近遇到了 Multer。它易于使用,但它上传文件系统中的文件而不是直接上传到 MongoDB.
Multer 是 Busboy 的高级包装器,遗憾的是它没有使用 Stream
unless you're writing a StorageEngine
进行回调。您非常想要一个流的原因是,否则您必须先将整个文件缓冲到 Node 进程的内存中,然后才能对其进行任何操作。流效率更高,允许您在接收数据的同时将数据流式传输到某处,仅在内存中缓冲以防万一您无法以与接收数据相同的速率将数据传输到某处。
将自定义 StorageEngine
与 gridfs-stream 相结合将允许您在接收数据时将数据实时写入 GridFS(例如,用户仍在上传)。
我为 Multer 找到了两个 GridFS 存储引擎:
https://github.com/ISMAELMARTINEZ/gridfs-storage-engine
https://github.com/arjandepooter/multer-gridfs
后者似乎没有任何文档,但通过查看源代码仍然很容易使用。