Come potrei limitare il caricamento e la velocità di download dal server in golang?Come potrei limitare il caricamento e la velocità di download dal server in golang?
Sto scrivendo un server golang per consentire agli utenti di caricare e scaricare file. E il file è grande, circa 1 GB di byte. Voglio limitare la velocità di upload e download a (ad esempio) 1MB/s (configurabile ovviamente).
sotto è il mio codice di caricamento:
func uploadFile(w http.ResponseWriter, r *http.Request) {
file, _, err := r.FormFile("file")
if err != nil {
http.Error(w, err.Error(), 500)
return
}
defer file.Close()
os.MkdirAll(`e:\test`, os.ModePerm)
out, err := os.Create(`e:\test\test.mpg`)
if err != nil {
http.Error(w, err.Error(), 500)
return
}
defer out.Close()
_, err = io.Copy(out, file)
if err != nil {
http.Error(w, err.Error(), 500)
}
}
Questo può limitare file di velocità di scrittura, ma ho visto task manager modulo di rete a mantenere alti speed.I vogliono limitare speed.thanks di trasferimento dei dati di rete comunque – waitwone
È un mio problema. Dovrei usare r.MultipartReader() e reader.NextPart() invece di r.FromFile(), perché r.FromFile() salverà i dati in un file temporaneo di sistema. Grazie! – waitwone