我想知道是否有一种简单的方法来确定节点js中readStream的长度。我正在写一个工作人员将PDF上传到S3,它正在解决错误:'无法确定[对象PDF文档]的长度。 pdf是一个可读的流(我现在可以将它传送到内存中的文件并查看生成的pdf)。
我正在考虑做的一些事情: 1.将整个pdf管道到内存(例如缓冲区),然后在该缓冲区上调用fstat以确定大小。
或者有更简单的方法吗?提前致谢所有建议!
这是对S3的调用。可读的pdf流称为doc:
return Q.ninvoke(s3, 'putObject', {Bucket: 'REDACTED', Key: obfuscatedFN, Body: doc, ContentType: 'application/pdf'})
.then(function() {
console.log("Successfully uploaded data to myBucket/myKey");
return Q(true);
})
.fail(function(err) {
console.log(err);
})
答案 0 :(得分:12)
S3有另一种名为“上传”的方法。您可以在不需要知道长度的地方使用。