io.LimitReader(r, n) возвращает io.Reader, который после прочтения n байт возвращает io.EOF.
body := io.LimitReader(req.Body, 1024*1024) // макс. 1 МБ
data, err := io.ReadAll(body)Защита от переполнения памяти при использовании io.ReadAll на ненадежном источнике (тело HTTP-запроса, сетевой ввод).