¿Cómo puedes subir archivos como una secuencia en go?

Hay una serie de tutoriales sobre la publicación de archivos usandohttp.Request en marcha, pero casi siempre comienzan así:

file, err := os.Open(path)
if err != nil {
    return nil, err
}
fileContents, err := ioutil.ReadAll(file)

Es decir, lees todo el archivo en la memoria y luego lo conviertes en unBuffer y pasar eso a una solicitud, algo como esto:

func send(client *http.Client, file *os.File, endpoint string) {
    body := &bytes.Buffer{}
    io.Copy(body, file)
    req, _ := http.NewRequest("POST", endpoint, body)
    resp, _ := client.Do(req)
}

Si quisieras publicar un archivo masivo y evitar leerlo en la memoria, pero en lugar de eso vaporiza el archivo en trozos ... ¿cómo lo harías?

Respuestas a la pregunta(2)

Su respuesta a la pregunta