influxdb/http/points/batch_reader.go

26 lines
579 B
Go

package points
import (
"compress/gzip"
"io"
io2 "github.com/influxdata/influxdb/v2/kit/io"
)
// BatchReadCloser (potentially) wraps an io.ReadCloser in Gzip
// decompression and limits the reading to a specific number of bytes.
func BatchReadCloser(rc io.ReadCloser, encoding string, maxBatchSizeBytes int64) (io.ReadCloser, error) {
switch encoding {
case "gzip", "x-gzip":
var err error
rc, err = gzip.NewReader(rc)
if err != nil {
return nil, err
}
}
if maxBatchSizeBytes > 0 {
rc = io2.NewLimitedReadCloser(rc, maxBatchSizeBytes)
}
return rc, nil
}