2015-05-14 18 views
2

我想知道是否有簡單的方法來確定節點js中readStream的長度。我正在寫一個工作人員將PDF上傳到S3,它正在嘔吐錯誤:'無法確定[對象PDFDocument]的長度「。 pdf是一個可讀的流(我可以管它到目前的內存中的文件,並查看生成的PDF)。確定節點js中讀取流的長度

我正在考慮的一些東西: 1.將整個pdf內存管理到內存(例如緩衝區),然後調用該緩衝區的fstat來確定大小。

  1. 創建一些方法,通過它可以動態地找到尺寸。

還是有更簡單的方法嗎?開放給所有的建議,提前致謝!

以下是對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); 
    }) 

回答

10

S3有另一種稱爲'upload'的方法,您可以在不需要知道長度的地方使用它。