kitak blog

Kみたいなエンジニアになりたいブログ

golang で URLの画像データを取得して、ローカルのファイルに保存する術

こんにちは。今日は体調がいまいちなので、トムヤムクンを食べにいきます、きたけーです。

golang で URLの画像データを取得して、ローカルのファイルに保存してみました。 こんなかんじのコードで猫ちゃん画像が保存できます。

package main

import (
    "io"
    "net/http"
    "os"
)

func main() {
    var url string = "http://placekitten.com/g/640/340"

    response, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer response.Body.Close()

    file, err := os.Create("save.jpg")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    io.Copy(file, response.Body)
}

最初は、ioutils.ReadAll でいったんデータを変数にいれてからio.Writeしていたんですが、io.Copyをドキュメントでみつけたのでこちらを使うようにしました(余計なメモリをつかわない)