API에 POST 요청을 보내고 제 3 자 라이브러리 (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
에서 시작 및 완료에 간다 :는 HTTP 필수 핸들러는 메모리에 파일을 읽고 진행 표시 줄이 증가하기 때문에
12.64 MB/12.64 MB [======================] 100.00% 626.67 KB/s 20s
이 있습니까? 내가 뭘 놓치고 있니?
나는이 게시물 (Go: Tracking POST request progress)을 체크 아웃했는데, 내가 사용하고있는 라이브러리와 어떻게 다른지 알지 못했다. 이전에 진행 막대 막대를 읽는 버퍼에 io.Copy
을 사용하여 시도했지만 요청이 전송되자 마자 똑같은 일을합니다. 내가 주석에 쓴대로
코드가 불완전합니다. [Minimal, Complete, Verifiable example] (http://stackoverflow.com/help/mcve)을 제공해주십시오. –