Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengoptimumkan prestasi menggunakan muat naik fail HTTP di Golang?
Amalan terbaik untuk mengoptimumkan prestasi muat naik fail HTTP Golang: Tetapkan had memori yang munasabah: r.MaxMemory = 32 << 20 // 32MB Gunakan fail sementara apabila menyimpan fail besar: if err := r.ParseMultipartForm(32 < < ; 20); err != nil { ... } Dayakan pemprosesan serentak Goroutine: taip multipartFile struct { ... }, func saveFilesConcurrently(files []multipartFile) { ... } Gunakan algoritma pemampatan untuk mengurangkan saiz fail: import " github.com/klauspost/compress/gzip", func compressImage(file multipartFile) { ... }Menggunakan CDN, jawapan cache dan pengoptimuman kod
Cara mengoptimumkan prestasi menggunakan muat naik fail HTTP dalam Golang
Kes amalan: Optimumkan muat naik imej
Tetapkan had memori yang munasabah
r.MaxMemory = 32 << 20 // 32MB
Gunakan fail sementara untuk menyimpan fail besar
if err := r.ParseMultipartForm(32 << 20); err != nil { return // 处理错误 } for _, file := range r.MultipartForm.File["images"] { f, err := os.CreateTemp("", "image-*.jpg") if err != nil { return // 处理错误 } if _, err := io.Copy(f, file); err != nil { return // 处理错误 } f.Close() // ... }
Dayakan pemprosesan serentak Goroutine
type multipartFile struct { *multipart.FileHeader *os.File } func saveFilesConcurrently(files []multipartFile) { var wg sync.WaitGroup for _, file := range files { wg.Add(1) go func(f multipartFile) { defer wg.Done() // ... }(file) } wg.Wait() }
Petua pengoptimuman tambahan
Cache-Control
Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan prestasi menggunakan muat naik fail HTTP di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!