26 lines
579 B
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
|
|
}
|