zip 파일 unzip후 정리 추가

This commit is contained in:
2024-09-26 13:18:32 +09:00
parent 387d4f3ea8
commit e9370513c2

View File

@ -140,25 +140,27 @@ func (h *houstonHandler) RegisterHandlers(serveMux gocommon.ServerMuxInterface,
filename := r.Header.Get("Houston-Service-Filename") filename := r.Header.Get("Houston-Service-Filename")
dir := path.Join(h.downloadPath, name, version) dir := path.Join(h.downloadPath, name, version)
if err := os.MkdirAll(dir, 0775); err == nil { if err := os.MkdirAll(dir, 0775); err == nil {
zipfile, _ := os.Create(path.Join(dir, filename)) filepath := path.Join(dir, filename)
logger.Println("file uploaded :", zipfile) localfile, _ := os.Create(filepath)
if zipfile != nil { logger.Println("file uploaded :", localfile)
if _, err = io.Copy(zipfile, r.Body); err != nil { if localfile != nil {
if _, err = io.Copy(localfile, r.Body); err != nil {
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
} else { } else {
localfile.Close()
localfile, _ = os.Open(filepath)
if strings.HasSuffix(filename, ".zip") { if strings.HasSuffix(filename, ".zip") {
stat, _ := zipfile.Stat() stat, _ := localfile.Stat()
zipreader, _ := zip.NewReader(zipfile, stat.Size()) zipreader, _ := zip.NewReader(localfile, stat.Size())
for _, f := range zipreader.File { for _, f := range zipreader.File {
file, _ := os.Create(path.Join(dir, f.Name)) file, _ := os.Create(path.Join(dir, f.Name))
comp, _ := f.Open() comp, _ := f.Open()
io.Copy(file, comp) io.Copy(file, comp)
file.Close() file.Close()
} }
defer os.Remove(path.Join(dir, filename)) os.Remove(filepath)
} }
} }
zipfile.Close()
} else { } else {
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
} }