- var size int64
-
- if !noCompress && !useTmp {
- var compressed bytes.Buffer
- compressor, err := zstd.NewWriter(
- &compressed,
- zstd.WithEncoderLevel(zstd.SpeedDefault),
- )
- if err != nil {
- return err
- }
- if _, err = io.Copy(compressor, in); err != nil {
- compressor.Close() // #nosec G104
- return err
- }
- if err = compressor.Close(); err != nil {
- return err
- }
- size = int64(compressed.Len())
- _, err = ctx.Tx(node, pkt, nice, size, minSize, &compressed, handle, areaId)
- }
- if noCompress && !useTmp {
- var data bytes.Buffer
- if _, err = io.Copy(&data, in); err != nil {
- return err
- }
- size = int64(data.Len())
- _, err = ctx.Tx(node, pkt, nice, size, minSize, &data, handle, areaId)
- }
- if !noCompress && useTmp {
- r, w := io.Pipe()
- compressor, err := zstd.NewWriter(w, zstd.WithEncoderLevel(zstd.SpeedDefault))
+ compressErr := make(chan error, 1)
+ if !noCompress {
+ pr, pw := io.Pipe()
+ compressor, err := zstd.NewWriter(pw, zstd.WithEncoderLevel(zstd.SpeedDefault))