golang で FTP でファイルを転送する
こんにちは。なすを炒めてたべました、きたけーす。
昨日のエントリ(http://kitak.hatenablog.jp/entry/2014/10/21/033956)に続いて、今度はURLの猫ちゃん画像をFTPで転送してみる。
こんなかんじ。
package main import ( "github.com/jlaffaye/ftp" "net/http" ) 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() client, err := ftp.Connect("localhost:21") if err != nil { panic(err) } defer client.Quit() err = client.Login("anonymous", "") if err != nil { panic(err) } err = client.Stor("save.jpg", response.Body) if err != nil { panic(err) } }
ftpのライブラリ、jlaffaye/ftp · GitHub と smallfish/ftp · GitHub がひっかかったんですが、後者は実装が雑だったり、関数がエラーを返さなかったり、サンプルのエラーハンドリングが適当だったので、前者を選択しました。