2013-01-13 2 views
0

Я использую модуль Knox S3, но когда я в конечном итоге получаю файл, результирующий файл поврежден. Я неправильно использую Knox?Как потреблять ответ от модуля Knox?

 var data; 
     client.getFile(path, function(err, file) { 
      file.on('data', function(chunk) { data += chunk; }); 
      file.on('end', function() { 
       //Here I end up sending the response with new Buffer(data), but that produces a bad file. 
      }); 
     }); 

ответ

1

Попробуйте использовать WriteStream:

var fs = require('fs'); 
var file = fs.createWriteStream(path); 
client.getFile(path, function(err, stream) { 
    stream.on('data', function(chunk) { file.write(chunk); }); 
    stream.on('end', function(chunk) { file.end(); }); 
}); 

и убедитесь, чтобы посмотреть на https://github.com/aws/aws-sdk-js

+0

Только явное спасибо за раскрытие собственного SDK Амазонки. Не знаю, как я это пропустил! – Benny

+0

@ yonatan: исправлено – Chris