func validateContentTypeSize()

in code/go/internal/validator/content.go [58:77]


func validateContentTypeSize(fsys fs.FS, path string, contentType spectypes.ContentType, limits spectypes.LimitsSpec) error {
	info, err := fs.Stat(fsys, path)
	if err != nil {
		return err
	}
	size := spectypes.FileSize(info.Size())
	if size <= 0 {
		return errors.New("file is empty, but media type is defined")
	}

	var sizeLimit spectypes.FileSize
	switch contentType.MediaType {
	case "application/x-yaml":
		sizeLimit = limits.MaxConfigurationSize()
	}
	if sizeLimit > 0 && size > sizeLimit {
		return fmt.Errorf("file size (%s) is bigger than expected (%s)", size, sizeLimit)
	}
	return nil
}