| package handler | |
| import ( | |
| "errors" | |
| "fmt" | |
| "net/http" | |
| ) | |
| func extractMaxBytesError(err error) (*http.MaxBytesError, bool) { | |
| var maxErr *http.MaxBytesError | |
| if errors.As(err, &maxErr) { | |
| return maxErr, true | |
| } | |
| return nil, false | |
| } | |
| func formatBodyLimit(limit int64) string { | |
| const mb = 1024 * 1024 | |
| if limit >= mb { | |
| return fmt.Sprintf("%dMB", limit/mb) | |
| } | |
| return fmt.Sprintf("%dB", limit) | |
| } | |
| func buildBodyTooLargeMessage(limit int64) string { | |
| return fmt.Sprintf("Request body too large, limit is %s", formatBodyLimit(limit)) | |
| } | |