2014-02-15 67 views
1

我编写了一个node.js应用程序,该应用程序实时显示来自Instagram的具有特定主题标签的图片。该应用程序工作得很好,非常快。我想添加的是,可以将所有显示的图像保存到特定文件夹(在我的计算机上)进行打印(然后添加一个脚本来执行此操作)。使用node.js将instagram照片保存到本地文件夹中

你知道是否有一个库允许我将这些图像保存到文件夹中吗?谢谢

回答

0

事实上,它是一张Instagram的照片,你实时得到它并不是真的很重要的照片保存在本地硬盘上。

无论你使用任何NPM模块或者简单地使用自己的代码在末尾部分,你应该有一个URL的照片是这样的:

"standard_resolution": { 
       "url": "http://distillery.s3.amazonaws.com/media/2011/02/01/34d027f155204a1f98dde38649a752ad_7.jpg", 
       "width": 612, 
       "height": 612 
      } 

所以,你可以简单地使用:

var http = require('http-get'); 
var options = {url: 'http://distillery.s3.amazonaws.com/media/2011/02/01/34d027f155204a1f98dde38649a752ad_7.jpg'}; 
http.get(options, '/path/to/where/you/want/myPic1.jpg', function (error, result) { 
    if (error) { 
     console.error(error); 
    } else { 
     console.log('Photo successfully downloaded and saved at: ' + result.file); 
    } 
}); 

或者我看到这个太(我不记得,但我把它当作片段):

var http = require('http') 
    , fs = require('fs') 
    , options 

options = { 
    host: 'www.google.com' 
    , port: 80 
    , path: '/images/logos/ps_logo2.png' 
} 

var request = http.get(options, function(res){ 
    var imagedata = '' 
    res.setEncoding('binary') 

    res.on('data', function(chunk){ 
     imagedata += chunk 
    }) 

    res.on('end', function(){ 
     fs.writeFile('logo.png', imagedata, 'binary', function(err){ 
      if (err) throw err 
      console.log('File saved.') 
     }) 
    }) 

}) 

由于这是一个http请求,响应时间取决于很多因素(从互联网的速度,Instagram服务器响应时间,一直到硬盘速度)。

所以,如果你可以用Redis的或其他消息队列工具队列可以确保所有的照片,最终,如果你的应用程序是24x7全天候运行,有很多的订阅将被保存在本地。

祝你好运!

更新:我发现的URL,我的代码片段:Writing image to local server

欣赏这些家伙对他们的代码!我刚才指出。

相关问题