是什么导致带有--data和@filename的curl POST仅发送46%的数据?

I run:

curl -i -X POST -H "Content-Type: application/octet-stream" --data @race.mov "http://127.0.0.1:8080/api/v1/put_file"

where race.mov is 4134329 bytes. But only 1931871 are received by the program listening on port 8080.

so I try another file that's 2482905 bytes. But only 1150635 are received. Isn't that weird?

irb(main):002:0> 1931871.0 / 4134329.0 => 0.4672755845023461 irb(main):003:0> 1150635.0 / 2482905.0 => 0.4634228856923644

What's going on to make curl only send 46% of the binary data?

Update this same go program:

  dat, err := ioutil.ReadFile("/Users/aa/Movies/race.mov")
  fmt.Println(err)

  endpoint := fmt.Sprintf("http://127.0.0.1:8080/api/v1/put_file")
  fmt.Println(endpoint)
  buffer_reader := bytes.NewReader(dat)
  resp, err := http.Post(endpoint, "application/octet-stream", buffer_reader)
  fmt.Println(resp, err)

makes the correct length happen so it MUST be curl