golang
Golang: embed한 파일을 API 요청에 회신해주기
주먹불끈
2023. 1. 4. 15:54
개요
1. 특정 파일 하나를 embed 하여 고객이 template으로 요구할 경우 다운로드 할 수 있도록 하고 싶다.
2. Golang echo framework 를 사용중이다.
내용
GitHub: https://github.com/nicewook/echo-serve-embedfile
- embed로 가져온 다음
- ReadFile() 메서드로 파일을 읽어 바이트 슬라이스로 만든 다음
- Content Disposition 헤더로 파일이름을 지정하고
- ContentType을 명시한 다음 바이트 슬라이스를 회신한다.
//go:embed static
var static embed.FS
func main() {
e := echo.New()
e.GET("/csv", func(c echo.Context) error {
p, err := static.ReadFile("static/userinfo.csv")
if err != nil {
log.Println(err)
return err
}
c.Response().Header().Set(echo.HeaderContentDisposition, "attatchment; filename=userinfo.csv")
return c.Blob(http.StatusOK, "text/csv", p)
})
e.Logger.Fatal(e.Start(":1323"))
}
반응형