问题标签 [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.
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 正确设置了标题,并且下载的文件的大小与我在检查存储桶时看到的匹配。
任何想法出了什么问题?
javascript - 没有上传文件时,我使用 busboy 的应用程序冻结
我正在编写一个接收表单的应用程序,但我遇到了一个小问题。当没有文件上传时,我的应用程序冻结。我不知道为什么。我使用 connect-busboy 来接收文件。
那是我的代码:
我必须添加所有文件以避免它,但这不是我想做的事情。
任何帮助表示赞赏。谢谢!
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 秒出现,可能是由于一些超时。
知道如何解决这个问题吗?
rethinkdb - 在 RethinkDB 中存储缓冲区
我正在将文件(多部分/表单数据)上传到 Koa,并希望将其存储到 RethinkDB 中。
我用 co-busboy 解析它,这会产生一个流。
然后我通过将数据/结束侦听器附加到它,收集所有缓冲区并将它们连接起来,将流转换为缓冲区。
完成此操作后,我得到我的数据库记录,将缓冲区放入正确的字段并保存。
但我总是收到范围错误,因此永远不会保存更新。
我创建的缓冲区是否需要一些额外的信息让 RethinkDB 存储它?
node.js - 节点转换流不等待
我从 Busboy 获得一个文件流,然后我将它传送到一个自定义转换流以验证和清理它。它适用于小文件,但随着它们变大,我的自定义流不会等待 busboy 流完成并被截断。
这是busboy代码:
还有我的转换流:
javascript - 收到“上传文件太快!” 来自 Imgur API 的错误
我创建了一个 node.js 服务器,它使用 busboy 来接受请求,并将文件通过管道传输到 Imgur 进行上传。但是,我不断收到“上传文件太快!” 来自 Imgur 的回应,我不确定到底是什么问题。这是涉及 busboy 的代码片段:
如您所见,我将请求文件直接传送到我对 imgur 的请求中。通过简单地将文件保存到磁盘然后使用fs.createReadStream()
完美地提供 ReadStream,所以我不确定为什么尝试直接从请求到请求的管道会给我错误。我从 Imgur 得到的确切回复是:
如果有人以前遇到过这种情况,那将很有帮助...
node.js - 使用 NodeJS Multer 转换上传
我目前正在为我的用户实施文件/图像上传服务。我想在上传到我的 s3 存储桶之前转换这些图像(调整大小/优化)。
我目前正在做的事情:在我的前端使用多部分表单(我认为实际的实现在这里无关紧要..)以及我的后端的multer
andmulter-s3
包。
在这里,我的实现被剥离到了重要的部分。
我想要做的:在上传之前转换图像。我不确定我是否需要在这里使用 multer/busboy 或者我可以用 NodeJS 来做(因此我也标记了 NodeJS 和 express)。
所以我的问题是:在将上传到我的 S3 存储桶之前,我可以在哪里拦截上传并对其进行转换?
node.js - 用busboy解析文件流并直接写入到gridfs中
:) 你好!
我试图弄清楚如何在 express 框架中将上传文件直接写入 GridFs。
我编写了如下代码,问题是永远不会发出文件事件“文件”。
:(