no-image

golang で bitcasa downloder書いた

最近は golang の勉強してるんですが、なかなか楽しいです。

PHPっぽいコードはわりと書けるようになってきたんですが、goroutine や channel がでてくると途端に思い通りに動かなくて大変です。

ずっと契約してきた Inifinity Storage の bitcasa が Infinity Plan を終了するという事で、期限内に大量のファイルをダウンロードする必要がでてきたので golang でダウンローダー作ったりしてました。

あらかじめJSONからダウンロードリストを作っておいて食べさせると指定した並列度でダウンロードしてくれます。
Bitcasa は1ファイルあたりの速度に制限をかけてるみたいで1つ1つダウンロードしてると絶対間に合わないという事で、最大12並列くらいで動かしてました(あんまり増やすとapi limitにあたるので、小さなファイルをたくさん落とすときは4並列くらいにおさえるとよい)

なんかこれくらいなら guzzle でできたなーという感じですが、たまには他の言語を使ってみるのも面白いですね。