meteor:通过API下载video文件并保存到磁盘

我试图达到以下目的:

  • 通过API从另一台服务器下载video
  • 将video保存到磁盘以便在<video>标记中提供

但我无能为力 – 我试图下载的video总是无效的(而且尺寸错误)。

这是我的服务器方法:

 getVideo: function() { var fs = Npm.require('fs'); var response = HTTP.get('http://webserver.com/getvideo'); fs.writeFile('file.mp4',response.content, function (err) { if (err) throw err; console.log('It\'s saved!'); }); } 

其他的东西,我已经尝试和呈现基本相同的结果:

使用createWriteStream:

 var file = fs.createWriteStream('file.mp4'); var response = HTTP.get('http://webserver.com/getvideo'); response.content.pipe(file); 

与缓冲区():

 var buffer = new Buffer(response.content) fs.writeFile('file.mp4', buffer) 

还有不同的编码: base64, binary

networking服务器(写在烧瓶)响应这样的:

 { content: ........00+ilst\u0000# too\u001bdata\u0000\u0000\u0000\u0000Lavf52.48.0', headers: { 'content-disposition': 'attachment; filename=file.mp4', 'content-length': '632310', 'content-type': 'video/mp4', 'last-modified': 'Fri, 08 Jan 2016 00:45:49 GMT', 'cache-control': 'public, max-age=43200', expires: 'Fri, 08 Jan 2016 20:21:08 GMT', etag: '"flask-1452213949.65-632310-220532295"', server: 'Werkzeug/0.11.3 Python/2.7.11', date: 'Fri, 08 Jan 2016 08:21:08 GMT' }, data: null } 

curl或网页浏览器的工具,虽然可以正确下载(并把磁盘)的文件,我错过了什么?

我设法使它工作。

据我所看到的内容得到编码,所以我需要删除该编码。

正如在[meteor] [0.6。*]与meteorjs,如何使用Meteor.http下载文件? 在最下方:

meteorHTTP的编码选项是npmRequestOptions的子选项,所以HTTP.get(URL,{npmRequestOptions:{encoding:null}},它终于让我得到二进制文件像JPG格式。

感谢#meteor的lanmower帮助我。