APIにPOSTリクエストを送信していて、サードパーティのライブラリ(https://github.com/cheggaaa/pb)を使用していますが、実際にファイル転送が完了する前にアップロードプログレスバーが終了しています。アップロードが完了する前にアップロードの進行状況バーが終了するのはなぜですか?
package main
import(
pb "gopkg.in/cheggaaa/pb.v1"
"net/http"
)
func main() {
file, e := os.Open(path)
if e != nil {
log.Fatal()
}
defer file.Close()
bar := pb.New(int(fi.Size()))
bar.Start()
req, err := http.NewRequest("POST", url, body)
resp, err := client.Do(req)
bar.Finish()
return
}
それは
12.64 MB/12.64 MB [======================] 100.00% 12.59 MB/s 0s
から始まり、完了時に行く:
12.64 MB/12.64 MB [======================] 100.00% 626.67 KB/s 20s
HTTP Reqをハンドラがメモリにファイルを読み込むと、プログレスバーが増加しているので、このですか?私は何が欠けていますか?
私はこの記事(Go: Tracking POST request progress)をチェックアウトしましたが、使用しているライブラリとどのように違うのか分かりません。私はこれまでバッファーにio.Copy
を使って試してみましたが、バッファーにはプログレスバーリーダーが表示されていますが、要求が送信されるとすぐに同じことが行われます。私はコメントに書いたように
コードが不完全です。 [最小、完全、および検証可能な例]を提供してください(http://stackoverflow.com/help/mcve)。 –