本記事は ディップ with 全部俺 AdventCalendar 24日目の記事です。
Goのプログラムを組んでてあれ?何だっけ?となったので備忘録的に記載します。
コンテンツをダウンロードする。
特段難しいことはありませんでした。
Getで取得し、OpenFileでファイルを開きWeiteで書くだけです。
※今回はサンプルのため、エラーハンドリングせずすべてreturnで返してしまいます。
func GetContentByURL(target string) { resp, err := http.Get(target) if err != nil { return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { return } _, filename := path.Split(target) file, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY, 0666) if err != nil { return } defer file.Close() file.Write(body) }
targetのファイル名をそのまま利用しているので、別名にしたい場合はその辺ハンドリングしてください。
また、今回はファイルがなければ作成するようにしています。
なければ作成、有れば追記の場合は os.O_APPEND
をパイプでつなげれば良いです。
ResponseBody及びfileのCloseしわすれに注意しましょう。
以上