【发布时间】:2014-02-15 23:33:18
【问题描述】:
我编写了一个 node.js 应用程序,它可以实时显示来自 Instagram 的带有特定主题标签的图片。该应用程序运行良好,速度非常快。我想补充的是,可以将所有显示的图像保存到特定文件夹(在我的计算机上)以进行打印(然后添加脚本来执行此操作)。
你知道是否有一个库可以让我将这些图像保存到一个文件夹中吗?谢谢
【问题讨论】:
标签: node.js express socket.io instagram
我编写了一个 node.js 应用程序,它可以实时显示来自 Instagram 的带有特定主题标签的图片。该应用程序运行良好,速度非常快。我想补充的是,可以将所有显示的图像保存到特定文件夹(在我的计算机上)以进行打印(然后添加脚本来执行此操作)。
你知道是否有一个库可以让我将这些图像保存到一个文件夹中吗?谢谢
【问题讨论】:
标签: node.js express socket.io instagram
它是一张 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);
}
});
或者我也见过这个(我不记得在哪里,但我有它作为sn-p):
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 运行且订阅量很大的情况下,所有照片最终都将保存在本地。
祝你好运!
更新:我找到了我的代码 sn-ps 的 URL:Writing image to local server
感谢这些人的代码!我只是指出来。
【讨论】: