如何使用Knox将文件从NodeJSstream式传输到Amazon S3?

在NodeJS中,我是非常新的stream – 对于他们基本上毫无头绪 – 我试图让Amazon S3的KnoxJS客户端通过HTTP GETstream式传输文件。

Knox github页面上的示例代码显示了这一点:

http.get('http://google.com/doodle.png', function(res){ var headers = { 'Content-Length': res.headers['content-length'] , 'Content-Type': res.headers['content-type'] }; client.putStream(res, '/doodle.png', headers, function(err, res){ // check `err`, then do `res.pipe(..)` or `res.resume()` or whatever. }); }); 

但是,这是非常明显的不完整的……除了打开http.getputStream for S3之外,

那么我从哪里去呢? 有人可以帮我完成这段代码,这样我就可以通过HTTP GET将文件stream式传输到S3上的存储桶中了吗?

一旦你进入这个callback:

 //check `err`, then do `res.pipe(..)` or `res.resume()` or whatever 

谷歌的响应已经被传输到S3了(这就是knox的putStream为你所做的),而且是S3的回应,所以除了check error和console.log("Upload done")如果这是一个命令行片段。 他们的文档是说,如果整个片段是在浏览器和node.jsnetworking应用程序之间的HTTP req / res交互的上下文中,那么您可以决定将图像传回给浏览器,你可以做到这一点(至less在理论上)。 我认为这些文件有点混淆,但这是我的解释。