2015/01/19更新

[NodeJS] requestモジュールを使って、サーバーから画像ファイルをダウンロードする

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
先日とあるサイトの不正画像をチェックするために、nodejsで画像ファイルをダウンロードするプログラムを書きました。利用したライブラリやコードなど備忘録として残したいので、ブログを書きたいと思います。

画像

Special Thanks to https://flic.kr/p/dG9ffs





利用したライブラリ

node.js標準のhttpモジュールを使ってもファイルのダウンロードはできますが、少々実装が面倒です。今回はrequestモジュールを利用しました。
requestモジュールは、httpリクエスト(httpsリクエスト)をコールするためのシンプルなAPIです。今回紹介するGETメソッド以外にもPOSTやPUTが使えたり、OAuthのためのリクエストにも使えたりする便利なモジュールです。
インストールは簡単で以下のように行います。
$ npm install request --save
これで無事にインストールが完了すれば、準備完了です。



リモートサーバーからファイルをダウンロードする

requestモジュールを使ったファイルのダウンロードは、以下のように実装します。
/**
  サーバーからファイルをダウンロードする
  https://github.com/yoheiMune/node-playground/blob/master/005_download_file/download_file.js
*/
var fs = require('fs');
var request = require('request');

// ダウンロードURL
var fileUrl = 'http://www.yoheim.net/image/sea001.jpg';

// ファイルをダウンロードする
request
  .get(fileUrl)
  .on('response', function (res) {
    console.log('statusCode: ', res.statusCode);
    console.log('content-length: ', res.headers['content-length']);
  })
  .pipe(fs.createWriteStream('./saved.jpg'));
こんな数行でファイルダウンロードができるなんて素敵です。



最後に

今回は、Node.jsのrequestモジュールを用いたファイルダウンロードを紹介しました。最近はNode.jsが楽しくなってきて、簡単なバッチファイルもnodeで記述するようになってきました。nodeを便利に使うための色々な実装内容を、これからもブログに書けたらと思います。

本ブログでは、フロントエンドやNode.jsに関する情報を中心に発信しています。気になった方はぜひ、RSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。