问题标签 [busboy]

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 回答
636 浏览

amazon-s3 - 使用 Knox 和 Node.js 从 Amazon S3 下载的文件已损坏

我正在使用knox访问我的 Amazon S3 存储桶以进行文件存储。我正在存储各种文件 - 主要是 MS Office 和 pdf,但可能是二进制文件或任何其他类型的文件。我还使用express 4.13.3 和带有connect-busboy 的 busboy支持流媒体;上传文件时,我正在使用 busboy 处理,然后通过 knox 直接到 S3,因此不必先将它们写入本地磁盘。

文件上传正常(我可以使用Transmit手动浏览和下载它们)但我在下载时遇到问题。

为清楚起见,我不想将文件写入本地磁盘,而是将其保存在内存缓冲区中。这是我用来处理 GET 请求的代码:

文件下载到浏览器 - 我正在使用 John Culviner 的jquery.fileDownload.js - 但下载的内容已损坏且无法打开。如您所见,我正在使用 express'.attachment来设置 mime 类型和.append附加标头的标头(.set改用没有区别)。

当文件在 Chrome 中下载时,我看到消息“ Resource interpreted as Document but transferred with MIME type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:”(对于 Excel 文件),因此 express 正确设置了标题,并且下载的文件的大小与我在检查存储桶时看到的匹配。

任何想法出了什么问题?

0 投票
3 回答
8043 浏览

javascript - 使用 Dropzone 通过节点 multer 上传多个文件时出现 LIMIT_UNEXPECTED_FILE 问题

在前端使用 Dropzone 在一个请求中将多个文件上传到服务器,并使用Multer中间件来处理 multipart/form-data。在 Dropzone 配置中设置uploadMultiple: true,它将 [] 附加到名称。例如,名称将是 files[0]、files 1等。

服务器端代码:

但是,似乎 multer().array(fieldname) 只允许字段名与表单数据中的名称匹配。否则,它会抛出 LIMIT_UNEXPECTED_FILE 错误。

有什么建议可以通过将名称始终设为“字段”而不是附加 [] 或让 multer 来处理类似的不同名称来修复它?

0 投票
0 回答
129 浏览

javascript - 没有上传文件时,我使用 busboy 的应用程序冻结

我正在编写一个接收表单的应用程序,但我遇到了一个小问题。当没有文件上传时,我的应用程序冻结。我不知道为什么。我使用 connect-busboy 来接收文件。

那是我的代码:

我必须添加所有文件以避免它,但这不是我想做的事情。

任何帮助表示赞赏。谢谢!

0 投票
1 回答
361 浏览

javascript - busboy“文件”到 gm 到 ftp 上传

我想在 nodejs 上重新调整上传图像的大小并通过 ftp 发送。使用 nodejs、busboy、GraphicsMagick 和 jsftp。

现在的输出是:

在 ftp 服务器端,我得到一个 0 字节的文件,也从不做 cb。我找到了这两个问题,但无法让它对我有用: 问题 1 问题 2

我想我给 gm 的文件一定有问题,因为“数据”从未写入控制台。File it self 很好,因为我设法将未调整大小的文件上传到 ftp 服务器。

我感谢每一个帮助!

谢谢

0 投票
1 回答
2939 浏览

node.js - Node.js express + busboy 文件类型检查

我正在尝试使用带有 busboy 的 express 在 Node.js 4.x 中实现文件上传。我已经能够上传文件并将它们存储在 Azure Blob 存储中。

不,我想在将文件存储到 Azure 之前验证文件类型,并拒绝任何无效的文件。

我想使用幻数进行验证。我发现 const fileType = require('file-type');它决定了我的文件类型。

现在我试图让这项工作尽可能高效,但这是我苦苦挣扎的地方:我想直接将文件流通过管道传输到 azure。但在此之前,我需要将流中的前 5 个字节读取到由文件类型处理的缓冲区中。

从流中读取然后通过管道传输到 azure 肯定是行不通的。经过一些研究,我通过在 2 个 PassThrough 流中传输文件找到了解决方案。但现在我正在努力正确处理这两个流。

此解决方案有时有效 - 有时会出现一些“结束后写入”错误。另外,我认为流没有正确关闭,因为通常,在请求之后,快递会在控制台上记录如下内容:

但是这个日志消息现在在“blob 上传完成”之后的 30 到 60 秒出现,可能是由于一些超时。

知道如何解决这个问题吗?

0 投票
1 回答
191 浏览

rethinkdb - 在 RethinkDB 中存储缓冲区

我正在将文件(多部分/表单数据)上传到 Koa,并希望将其存储到 RethinkDB 中。

我用 co-busboy 解析它,这会产生一个流。

然后我通过将数据/结束侦听器附加到它,收集所有缓冲区并将它们连接起来,将流转换为缓冲区。

完成此操作后,我得到我的数据库记录,将缓冲区放入正确的字段并保存。

但我总是收到范围错误,因此永远不会保存更新。

我创建的缓冲区是否需要一些额外的信息让 RethinkDB 存储它?

0 投票
1 回答
173 浏览

node.js - 节点转换流不等待

我从 Busboy 获得一个文件流,然后我将它传送到一个自定义转换流以验证和清理它。它适用于小文件,但随着它们变大,我的自定义流不会等待 busboy 流完成并被截断。

这是busboy代码:

还有我的转换流:

0 投票
1 回答
1068 浏览

javascript - 收到“上传文件太快!” 来自 Imgur API 的错误

我创建了一个 node.js 服务器,它使用 busboy 来接受请求,并将文件通过管道传输到 Imgur 进行上传。但是,我不断收到“上传文件太快!” 来自 Imgur 的回应,我不确定到底是什么问题。这是涉及 busboy 的代码片段:

如您所见,我将请求文件直接传送到我对 imgur 的请求中。通过简单地将文件保存到磁盘然后使用fs.createReadStream()完美地提供 ReadStream,所以我不确定为什么尝试直接从请求到请求的管道会给我错误。我从 Imgur 得到的确切回复是:

如果有人以前遇到过这种情况,那将很有帮助...

0 投票
2 回答
5136 浏览

node.js - 使用 NodeJS Multer 转换上传

我目前正在为我的用户实施文件/图像上传服务。我想在上传到我的 s3 存储桶之前转换这些图像(调整大小/优化)。

我目前正在做的事情:在我的前端使用多部分表单(我认为实际的实现在这里无关紧要..)以及我的后端的multerandmulter-s3包。

在这里,我的实现被剥离到了重要的部分。

我想要做的:在上传之前转换图像。我不确定我是否需要在这里使用 multer/busboy 或者我可以用 NodeJS 来做(因此我也标记了 NodeJS 和 express)。

所以我的问题是:在将上传到我的 S3 存储桶之前,我可以在哪里拦截上传并对其进行转换?

0 投票
0 回答
674 浏览

node.js - 用busboy解析文件流并直接写入到gridfs中

:) 你好!

我试图弄清楚如何在 express 框架中将上传文件直接写入 GridFs。

我编写了如下代码,问题是永远不会发出文件事件“文件”。

:(