Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hokita / 課題3-2 #22

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

hokita / 課題3-2 #22

wants to merge 2 commits into from

Conversation

hokita
Copy link

@hokita hokita commented Jul 26, 2020

課題3-2

分割ダウンローダを作ろう

  • 分割ダウンロードを行う
    • Rangeアクセスを用いる
    • いくつかのゴルーチンでダウンロードしてマージする
    • エラー処理を工夫する
    • golang.org/x/sync/errgourpパッケージなどを使ってみる
    • キャンセルが発生した場合の実装を行う

動作

$ go build -o pdl cmd/pdl/main.go

$ ./pdl -proc 10 https://blog.golang.org/gopher/header.jpg
start download worker: 1
start download worker: 10
start download worker: 4
start download worker: 2
start download worker: 5
start download worker: 7
start download worker: 9
start download worker: 6
start download worker: 3
start download worker: 8
finish download worker: 4
finish download worker: 8
finish download worker: 5
finish download worker: 3
finish download worker: 7
finish download worker: 9
finish download worker: 1
finish download worker: 10
finish download worker: 2
finish download worker: 6
finished

$ ls testdata/header.jpg
testdata/header.jpg

わからなかったこと、むずかしかったこと

  • そもそもurlからダウンロードをどう実現するのかを考えるのに時間がかかった。
    • pgetを参考にした。
    • 結局はurlでアクセスして読み込んだ情報(io.Reader)をファイルに書き込む(io.writer)だけだった。

@hokita hokita added the kadai3-2 課題3-2 label Jul 26, 2020
@hokita hokita changed the title 課題3-2対応 hokita / 課題3-2 Jul 26, 2020
- testdataに.gitkeepを追加
- おかしなコメントを修正
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kadai3-2 課題3-2
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant