gzip.go 389 B

1234567891011121314151617181920212223242526
  1. package main
  2. import (
  3. "compress/gzip"
  4. "io"
  5. "os"
  6. "sync"
  7. )
  8. var nullwriter, _ = os.Open("/dev/null")
  9. var gzipPool = sync.Pool{
  10. New: func() interface{} {
  11. gz, _ := gzip.NewWriterLevel(nullwriter, conf.GZipCompression)
  12. return gz
  13. },
  14. }
  15. func gzipData(data []byte, w io.Writer) {
  16. gz := gzipPool.Get().(*gzip.Writer)
  17. defer gzipPool.Put(gz)
  18. gz.Reset(w)
  19. gz.Write(data)
  20. gz.Close()
  21. }