vRp.CD2g_test/utils/compress/gzip.go

41 lines
848 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package compress
import (
"bytes"
"compress/gzip"
"io"
)
// GZipCompress 对数据进行GZip压缩返回bytes.Buffer和错误信息
func GZipCompress(data []byte) (bytes.Buffer, error) {
var buf bytes.Buffer
gzipWriter := gzip.NewWriter(&buf)
_, err := gzipWriter.Write(data)
if err != nil {
return buf, err
}
if err := gzipWriter.Close(); err != nil {
return buf, err
}
return buf, nil
}
// GZipUnCompress 对已进行GZip压缩的数据进行解压缩返回字节数组及错误信息
func GZipUnCompress(dataByte []byte) ([]byte, error) {
data := *bytes.NewBuffer(dataByte)
gzipReader, err := gzip.NewReader(&data)
if err != nil {
return nil, err
}
result, err := io.ReadAll(gzipReader)
if err != nil {
return nil, err
}
if err := gzipReader.Close(); err != nil {
return nil, err
}
return result, nil
}