compress.go 658 B

123456789101112131415161718192021222324252627282930313233343536
  1. package utilx
  2. import (
  3. "bytes"
  4. "compress/gzip"
  5. )
  6. //压gzip数据
  7. func GzipCompress(gzData string) (string, error) {
  8. var b bytes.Buffer
  9. gz := gzip.NewWriter(&b)
  10. if _, err := gz.Write([]byte(gzData)); err != nil {
  11. return "", err
  12. }
  13. if err := gz.Close(); err != nil {
  14. return "", err
  15. }
  16. return b.String(), nil
  17. }
  18. // 解压gzip数据
  19. func GzipUnCompress(gzData string) (string, error) {
  20. var b bytes.Buffer
  21. gz, err := gzip.NewReader(bytes.NewBuffer([]byte(gzData)))
  22. if err != nil {
  23. return "", err
  24. }
  25. if _, err := b.ReadFrom(gz); err != nil {
  26. return "", err
  27. }
  28. if err := gz.Close(); err != nil {
  29. return "", err
  30. }
  31. return b.String(), nil
  32. }