Memuat Turun Fail Besar Dengan Cekap Menggunakan Go
Menyimpan fail besar dalam ingatan boleh mengatasi sumber komputer. Dalam Go, bagaimanakah kita boleh memuat turun fail sedemikian secara terus, mengelakkan kekangan memori ini?
Jawapan:
Andaikan muat turun adalah melalui HTTP:
import ( "net/http" "io" "os" ) func DownloadFile(url, filepath string) (int64, error) { // Open the destination file out, err := os.Create(filepath) if err != nil { return 0, err } defer out.Close() // Start the HTTP request resp, err := http.Get(url) if err != nil { return 0, err } defer resp.Body.Close() // Stream the response body into the file (avoiding full buffering) n, err := io.Copy(out, resp.Body) if err != nil { return 0, err } return n, nil }
Pendekatan ini menggunakan badan tindak balas HTTP sebagai Pembaca. Fungsi seperti io.Copy() boleh beroperasi pada Pembaca ini, membolehkan kami memproses respons dalam ketulan.
Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail Besar dengan Cekap dalam Pergi Tanpa Mengisi Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!