2015-05-14 2 views
2

Мне интересно, есть ли простой способ определить длину readStream в узле js. Я пишу работника для загрузки PDF-файлов на S3, и он вызывает ошибку: «Невозможно определить длину [object PDFDocument]». PDF является читаемым потоком (я могу передать его в файл в памяти в настоящее время и просматривать сгенерированный PDF).Определение длины прочитанного потока в узле js

Некоторые вещи, о которых я думал: 1. Трубопровод всего pdf в память (например, в буфер), а затем вызывается fstat в этом буфере для определения размера.

  1. Создание некоторого метода, который динамически нашел размер, когда я передавал PDF через него.

Или есть более простой способ? Открытые для всех предложений, спасибо заранее!

Вот зов к S3. Поток для чтения PDF называется документ:

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 имеет другой метод, называемый «загрузки», который вы можете использовать, где вам не нужно знать длину.

Смежные вопросы