5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node.jsでrequestで画像をダウンロードしようとしてハマったので忘備録

Posted at

やりたかったこと

Lambda上のNode.jsでurlから画像をダウンロードして、リサイズしてS3に保存。
(よくあるLambda活用術?)
画像ダウンロードに使ったライブラリは定番のrequestバージョンは2.81.0
画像リサイズはgmを試しました。(試行錯誤したため)

ハマった点

以下のコードでなぜか、画像リサイズに失敗する。
そもそもリサイズ抜きで画像を保存してもファイルが開けない。responseの中身をログで吐くと、ちゃんとbodyやらcontent-typeは入っている。

ResizeImage.js
//〜〜(略)〜〜
request(event.imageurl, function (error, response, body) {
  //**** 画像をリサイズ & 保存する処理(略) ****
}

解決法

encodingにnullを指定したら治りました。

ResizeImage.js
//〜〜(略)〜〜
request({method: 'GET', url:event.imageurl, encoding: null}, function (error, response, body) {
  //**** 画像をリサイズ & 保存する処理(略) ****
}

responseをコンソール出力したときの文字化けも同時に治りました。
まさか、encodeingを指定しない場合と、nullを指定する場合で違う動きをするとは思いませんでした。

以上 、恐ろしいので、忘れないためのメモでした。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?