1
0
mirror of https://github.com/amir20/dozzle.git synced 2025-12-26 23:21:41 +01:00

feat: add Content-Encoding for downloading logs (#2769)

This commit is contained in:
Ivan
2024-02-10 18:02:10 +04:00
committed by GitHub
parent 28c2cdc571
commit 91d79c99ea

View File

@@ -3,6 +3,7 @@ package web
import (
"compress/gzip"
"context"
"strings"
"github.com/goccy/go-json"
@@ -30,12 +31,22 @@ func (h *handler) downloadLogs(w http.ResponseWriter, r *http.Request) {
}
now := time.Now()
nowFmt := now.Format("2006-01-02T15-04-05")
contentDisposition := fmt.Sprintf("attachment; filename=%s-%s.log", container.Name, nowFmt)
if strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") {
w.Header().Set("Content-Disposition", contentDisposition)
w.Header().Set("Content-Encoding", "gzip")
w.Header().Set("Content-Type", "application/text")
} else {
w.Header().Set("Content-Disposition", contentDisposition+".gz")
w.Header().Set("Content-Type", "application/gzip")
}
w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s-%s.log.gz", container.Name, now.Format("2006-01-02T15-04-05")))
w.Header().Set("Content-Type", "application/gzip")
zw := gzip.NewWriter(w)
defer zw.Close()
zw.Name = fmt.Sprintf("%s-%s.log", container.Name, now.Format("2006-01-02T15-04-05"))
zw.Name = fmt.Sprintf("%s-%s.log", container.Name, nowFmt)
zw.Comment = "Logs generated by Dozzle"
zw.ModTime = now