我对NodeJS中的流非常陌生 - 基本上对它们一无所知 - 而且我试图让Amazon S3的KnoxJS客户端从HTTP GET流式传输文件。
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.
});
});
但这显然是不完整的......除了为S3打开http.get
和putStream
之外,它除了做任何其他事情之外并没有做什么。
那么我从哪里开始呢?有人可以帮我完成这段代码,以便我可以在S3上将文件从HTTP GET流式传输到我的存储桶吗?
答案 0 :(得分:2)
进入此回调后:
//check `err`, then do `res.pipe(..)` or `res.resume()` or whatever
google的响应已经流式传输到S3(这是knox的putStream
为你做的),而err, res
是S3的响应,所以除了check之外你不需要其他任何东西错误和类似console.log("Upload done")
的内容,如果这是命令行代码段。他们的文档在这里说如果整个片段是在浏览器和node.js web应用程序之间的HTTP req / res交互的上下文中,那么你可以决定你想将图像传回给浏览器,你可以这样做(至少在理论上)。我认为文档对此有点混乱,但这是我的解释。