内容压缩级别允许为0

This commit is contained in:
GoEdgeLab
2023-12-05 10:48:17 +08:00
parent eb4bb630e9
commit cadac28975
3 changed files with 23 additions and 1 deletions

View File

@@ -19,6 +19,10 @@ func NewZSTDWriter(writer io.Writer, level int) (Writer, error) {
} }
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) var zstdLevel = zstd.EncoderLevelFromZstd(level)
zstdWriter, err := zstd.NewWriter(writer, zstd.WithEncoderLevel(zstdLevel)) zstdWriter, err := zstd.NewWriter(writer, zstd.WithEncoderLevel(zstdLevel))

View File

@@ -9,6 +9,24 @@ import (
"testing" "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) { func TestNewZSTDWriter(t *testing.T) {
var buf = &bytes.Buffer{} var buf = &bytes.Buffer{}
writer, err := compressions.NewZSTDWriter(buf, 10) writer, err := compressions.NewZSTDWriter(buf, 10)

View File

@@ -622,7 +622,7 @@ func (this *HTTPWriter) PrepareCompression(resp *http.Response, size int64) {
return return
} }
if this.compressionConfig.Level <= 0 { if this.compressionConfig.Level < 0 {
return return
} }