gin 서버 multipart form data 업로드시 유의사항
go 1.21 버전, gin 을 이용해 파일 업로드 관련 핸들을 작성해 테스트를 하던 도중, 팟에서 용량이 없어서 죽는 현상을 발견했다. 원인을 쭉 찾아보니 gin context parameter bind 과정 중, multipartForm data 요청이 왔다면, 파일에 대해서 아래의 코드를 수행하게 되는데, 임시파일로 먼저 저장하고, 파일핸들을 io.ReadCloseSeeker 로 반환해준다 if n > maxFileMemoryBytes { if file == nil { file, err = os.CreateTemp(r.tempDir, "multipart-") if err != nil { return nil, err } } numDiskFiles++ if _, err := file.Write(b.By..
2024. 1. 28.