[go] go 언어에서의 mime/multipart 패키지 소개
Go 언어에서 mime/multipart 패키지는 HTTP 요청의 Content-Type
헤더에 지정된 MIME 멀티파트 데이터를 다루는 데 사용됩니다. MIME 멀티파트는 하나 이상의 별개의 데이터 조각들을 하나의 메시지 내에 묶어 보내기 위한 표준이며, 파일 업로드나 이메일과 같은 다중 데이터 또는 첨부 파일을 다룰 때 많이 사용됩니다.
이 패키지는 MIME 멀티파트 형식의 데이터를 생성하고 파싱하는 데 필요한 함수와 구조체를 제공합니다. 멀티파트 형식 데이터를 생성할 때에는 multipart.NewWriter
함수를 사용하여 multipart.Writer
를 생성하고, 각 파트를 추가한 후에 마무리로 Close
메서드로 종료합니다. 멀티파트 형식 데이터를 파싱할 때에는 multipart.NewReader
함수를 사용하여 multipart.Reader
를 생성하고, NextPart
메서드로 각 파트를 가져올 수 있습니다.
예시 코드
다음은 멀티파트 형식의 데이터를 생성하고 파싱하는 간단한 예시 코드입니다.
package main
import (
"bytes"
"mime/multipart"
"net/http"
)
func main() {
// MIME 멀티파트 데이터 생성 예시
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
writer.WriteField("key", "value")
part, _ := writer.CreateFormFile("file", "example.txt")
part.Write([]byte("file data"))
writer.Close()
// MIME 멀티파트 데이터 파싱 예시
reader := multipart.NewReader(body, writer.Boundary())
for {
part, err := reader.NextPart()
if err != nil {
break
}
// 각 파트 처리
}
}
이를 통해 MIME 멀티파트 형식의 데이터를 생성하고 파싱하는 방법을 살펴볼 수 있습니다. 더 많은 기능과 옵션은 공식 문서에서 확인할 수 있습니다.
참고 문헌
- 공식 Go 언어 문서: https://golang.org/pkg/mime/multipart/
이 포스트는 Go 언어에서의 MIME 멀티파트 패키지의 기본 개념과 간단한 사용 예시를 소개합니다.