- 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))
- if err != nil {
- return err
- }
- copyErr := make(chan error)
- go func() {
- _, err := io.Copy(compressor, in)
- if err != nil {
- compressor.Close() // #nosec G104
- copyErr <- err