问题标签 [gridfs-stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
828 浏览

gridfs - 如何用 gridfs-stream 替换?

我正在使用此代码进行文件更新:

基本上,我正在检查一个 ID 存储在元数据中的文件。如果存在,我会在保存之前将其删除,如果不存在,我就进行保存。它似乎只是偶尔起作用。我有时会看到两种错误行为:

该文件将被删除,但不会重新创建。

该文件似乎已更新,但在我再次调用我的代码之前实际上不会被替换。所以基本上我需要为它做两个文件上传来注册替换。

它非常粗略,我无法真正确定它是否会起作用的模式。

所以我假设我做错了什么。使用 gridfs-stream 替换文件的正确方法是什么?

0 投票
1 回答
1456 浏览

node.js - GridFS 中的自定义字段

它可能在 GridFS 中保存自定义字段,我使用 NodeJS 和 gridfs-stream 模块。该文件被保存为下一个模式:

它可以添加带有上传文件的用户 ID 的自定义字段。其他可能性可以放在元数据中......但后来发现它很昂贵。

0 投票
0 回答
1883 浏览

javascript - Node.js 文件上传到 Gridfs - 错误:请求中止

我通过 gridfs-stream 节点模块将大文件上传到 Gridfs 时遇到问题。我尝试上传较小的文件,并且运行良好,但是当我尝试上传较大的文件(~2gb 及更多)时,node.js 服务器给了我这个错误:

我的代码如下,这也是在本地节点服务器上完成的:

}

还有我的主 server.js 文件:

最后是我的客户:

另外我想我应该提到,在我收到上述错误后,文件开始再次上传但仍然失败。同样,较小的文件也没有问题。所以我的问题是我如何能够使用这种方法有效地流式传输大文件,还是有更好的方法来做到这一点?谢谢。

0 投票
1 回答
453 浏览

node.js - 相同的图像出现在渲染上,但不在 gridfs-stream 的源代码中(mongoose 和 mongo 驱动程序)

我有一个奇怪的问题,其中图像在索引上显示不止一次,但在永久链接视图中显示每个帖子的正确图像系列。

我正在使用这个控制器,路由到/grid/:id

屏幕截图是我解释正在发生的事情的最简单方法。

这是当前正在渲染的索引(请注意,这里有两个不同的链接,但显示的是相同的图像)索引页面

这是对 Web Inspector 中第一张图像的检查: 在此处输入图像描述

经过仔细检查…… 在此处输入图像描述

但是,如果我转到该帖子的永久链接页面,它会随机显示正确的图像或再次显示相同的图像。但是,如果我将第一张图片拖到地址栏然后回击,它会再次显示正确的图片: 在此处输入图像描述

直到我点击刷新... 在此处输入图像描述

我的第一个猜测是它发送了不正确的ContentType,但现在代码发送了res.set('ContentType', files[0].contentType); 这可行,但即使手动将其设置为'image/png'也无法修复它。

我还为使用标准mongodb驱动程序制作了第二个控制器,但我得到了同样的错误。

这让我经历了一个巨大的循环。任何帮助将不胜感激!

0 投票
0 回答
766 浏览

node.js - Node.js gridfs-stream 下载文件CPU使用率

将文件从 Mongodb Gridfs 流式传输到文件系统时,我遇到了 CPU 使用率高的问题。我目前正在使用 gridfs-stream node.js 模块,代码如下:

在较小的文件(~100mb 和更多)上,cpu 使用率非常低,而在较大的文件(~1GB 和更多)上,cpu 达到 90-100% 并保持这种状态,显着降低下载速度,有时甚至阻止整个下载。另外,有没有更好的方法来处理从 Gridfs 下载到文件系统?想听听一些意见。谢谢。

0 投票
5 回答
17055 浏览

javascript - 在 GridFS、express、mongoDB、node.js 中存储来自 POST 请求的数据流

我试图弄清楚如何将图像直接发布到 GridFS,而无需先将其作为临时文件存储在服务器上的任何位置。

我正在使用 Postman (chrome ext.) 发布文件,并且我设法将这篇文章存储为文件,使用:

当从服务器上的文件创建 readStream 时,我还可以从 readStream 直接存储到 GridFS。(见代码)

我有以下文件,saveFromReq.js它们侦听 POST 并且基本上只是将其传递给savePic.js.

saveFromReq.js:

保存图片.js:

任何帮助将不胜感激!

0 投票
1 回答
257 浏览

c++ - 使用 C++ 在本地磁盘上使用 GridFS

我正在寻找一种解决方案,让我将一些嵌套的文件结构(目录、文件)存储在一个文件中。我考虑过像 tarball 之类的简单档案,但由于许多操作,它不合适。

比我想到 JSON 并将二进制文件存储到其中,作为 base64 编码的字符串。然后我偶然发现了 BSON 及其对每个文件 16MB 的限制。然后再次发现 GridFS 作为包装器,可以将较大的文件拆分为较小的块。

这对我的目标来说是完美的,因为 16MB 的块非常适合。

由于我的项目的分散对齐,我不能使用像 Mongo 这样的中央数据库。是否可以将 GridFS 用于单个本地文件之类的storage.bson东西,我可以在其中存储我的文件?

0 投票
1 回答
957 浏览

spring - displaying images from mongodb gridfs using spring data

I am new to this area, I have added a number of images to gridfs. Now i want to display all these images on html page. I have retrieved the images from mongodb using the following code.

It gives me all the images, now i have no idea how to display these images on html page. i am using velocity template.

0 投票
1 回答
6314 浏览

node.js - 使用 Node.js、Express.js 和 gridfs-stream 将文件直接流式传输到 GridFS

我正在使用最新版本的 express、mongodb、nodejs 等。我没有使用正文解析中间件,因为我不想在上传文件时将文件存储在磁盘上。我只想将它们直接流式传输到 GridF 中。我正在使用 gridfs-stream npm 模块。我知道 ExpressJs 在下面使用了强大的功能。请记住 - 我不希望文件进入磁盘。

这是我的路由处理程序,我只发布了一个多部分表单 - 该表单仅包含一个文件以及 1-3 个可选字段。

为什么哦为什么要 form.on('part',function(part)) - 为文件的同一部分多次调用超过 100kb 而对于较小的文件 - 我们只接到一个电话?

我真正想做的实际上是将文件从上传直接流式传输到 GridFs,并将同一帖子中的任何表单帖子字段附加到 GridFs 元数据。

}

当我发布小文件(即 <100kb)时 form.on('part' ... 每个文件部分只调用一次 - 每个字段部分只调用一次。我在帖子中只有文件 - 所以 sendPart(part)只被调用一个,文件被放入 GridFs 和快乐的日子。

但是 - 对于较大的文件,即 > 100kb - form.on('part' - 为同一个文件多次调用 - 即 part.filename 是

0 投票
1 回答
4674 浏览

node.js - 文件下载不适用于nodejs gridfs

我正在使用 node 和 express 将图像上传到 gridfs-stream..uploading 工作正常,但无法下载

上面的代码无法通过这个cmd下载图片download?filename=acf58ae4-c853-f9f3-5c66-c395b663298a