From cadac28975634b9268b735960583458993395b06 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Tue, 5 Dec 2023 10:48:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=8E=8B=E7=BC=A9=E7=BA=A7?= =?UTF-8?q?=E5=88=AB=E5=85=81=E8=AE=B8=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/compressions/writer_zstd.go | 4 ++++ internal/compressions/writer_zstd_test.go | 18 ++++++++++++++++++ internal/nodes/http_writer.go | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/internal/compressions/writer_zstd.go b/internal/compressions/writer_zstd.go index 942e0b8..d14fdc8 100644 --- a/internal/compressions/writer_zstd.go +++ b/internal/compressions/writer_zstd.go @@ -19,6 +19,10 @@ func NewZSTDWriter(writer io.Writer, level int) (Writer, error) { } func newZSTDWriter(writer io.Writer, level int) (Writer, error) { + if level < 0 { + level = 0 + } + var zstdLevel = zstd.EncoderLevelFromZstd(level) zstdWriter, err := zstd.NewWriter(writer, zstd.WithEncoderLevel(zstdLevel)) diff --git a/internal/compressions/writer_zstd_test.go b/internal/compressions/writer_zstd_test.go index 7f87a95..71af731 100644 --- a/internal/compressions/writer_zstd_test.go +++ b/internal/compressions/writer_zstd_test.go @@ -9,6 +9,24 @@ import ( "testing" ) +func TestNewZSTDWriter_Level0(t *testing.T) { + var buf = &bytes.Buffer{} + writer, err := compressions.NewZSTDWriter(buf, 0) + if err != nil { + t.Fatal(err) + } + var originData = []byte(strings.Repeat("Hello", 1024)) + _, err = writer.Write(originData) + if err != nil { + t.Fatal(err) + } + err = writer.Close() + if err != nil { + t.Fatal(err) + } + t.Log("origin data:", len(originData), "result:", buf.Len()) +} + func TestNewZSTDWriter(t *testing.T) { var buf = &bytes.Buffer{} writer, err := compressions.NewZSTDWriter(buf, 10) diff --git a/internal/nodes/http_writer.go b/internal/nodes/http_writer.go index 30e6023..57dcad4 100644 --- a/internal/nodes/http_writer.go +++ b/internal/nodes/http_writer.go @@ -622,7 +622,7 @@ func (this *HTTPWriter) PrepareCompression(resp *http.Response, size int64) { return } - if this.compressionConfig.Level <= 0 { + if this.compressionConfig.Level < 0 { return }