gzip.go 614 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package util
  2. import (
  3. "bytes"
  4. "compress/gzip"
  5. "io/ioutil"
  6. )
  7. func GzipEncode(in []byte) ([]byte, error) {
  8. var (
  9. buffer bytes.Buffer
  10. out []byte
  11. err error
  12. )
  13. writer, _ := gzip.NewWriterLevel(&buffer, gzip.BestSpeed)
  14. _, err = writer.Write(in)
  15. if err != nil {
  16. writer.Close()
  17. return out, err
  18. }
  19. err = writer.Close()
  20. if err != nil {
  21. return out, err
  22. }
  23. return buffer.Bytes(), nil
  24. }
  25. func GzipDecode(in []byte) ([]byte, error) {
  26. reader, err := gzip.NewReader(bytes.NewReader(in))
  27. if err != nil {
  28. var out []byte
  29. return out, err
  30. }
  31. defer reader.Close()
  32. return ioutil.ReadAll(reader)
  33. }