aboutsummaryrefslogtreecommitdiff
path: root/weed/util/compression.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/util/compression.go')
-rw-r--r--weed/util/compression.go32
1 files changed, 11 insertions, 21 deletions
diff --git a/weed/util/compression.go b/weed/util/compression.go
index 8699a8117..8158b9ba5 100644
--- a/weed/util/compression.go
+++ b/weed/util/compression.go
@@ -2,10 +2,7 @@ package util
import (
"bytes"
- "compress/flate"
- "compress/gzip"
"fmt"
- "io/ioutil"
"strings"
"github.com/chrislusf/seaweedfs/weed/glog"
@@ -42,17 +39,21 @@ func MaybeDecompressData(input []byte) []byte {
}
func GzipData(input []byte) ([]byte, error) {
- buf := new(bytes.Buffer)
- w, _ := gzip.NewWriterLevel(buf, flate.BestSpeed)
- if _, err := w.Write(input); err != nil {
- glog.V(2).Infof("error gzip data: %v", err)
+ w := new(bytes.Buffer)
+ _, err := GzipStream(w, bytes.NewReader(input))
+ if err != nil {
return nil, err
}
- if err := w.Close(); err != nil {
- glog.V(2).Infof("error closing gzipped data: %v", err)
+ return w.Bytes(), nil
+}
+
+func ungzipData(input []byte) ([]byte, error) {
+ w := new(bytes.Buffer)
+ _, err := GunzipStream(w, bytes.NewReader(input))
+ if err != nil {
return nil, err
}
- return buf.Bytes(), nil
+ return w.Bytes(), nil
}
func DecompressData(input []byte) ([]byte, error) {
@@ -67,17 +68,6 @@ func DecompressData(input []byte) ([]byte, error) {
return input, UnsupportedCompression
}
-func ungzipData(input []byte) ([]byte, error) {
- buf := bytes.NewBuffer(input)
- r, _ := gzip.NewReader(buf)
- defer r.Close()
- output, err := ioutil.ReadAll(r)
- if err != nil {
- glog.V(2).Infof("error ungzip data: %v", err)
- }
- return output, err
-}
-
func IsGzippedContent(data []byte) bool {
if len(data) < 2 {
return false