[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 언어에서의 MIME 멀티파트 패키지의 기본 개념과 간단한 사용 예시를 소개합니다.