package licence import ( "fmt" "io" "os" ) func VerifyFile(filePath string, expected Subject) (*Licence, error) { file, err := os.Open(filePath) if err != nil { return nil, fmt.Errorf("%w: 打开指定文件失败", ErrMalformedFile) } content, readErr := io.ReadAll(io.LimitReader(file, maximumLicenceFileBytes+1)) closeErr := file.Close() if readErr != nil { return nil, fmt.Errorf("%w: 读取指定文件失败", ErrMalformedFile) } if len(content) > maximumLicenceFileBytes { return nil, ErrFileTooLarge } if closeErr != nil { return nil, fmt.Errorf("%w: 关闭指定文件失败", ErrMalformedFile) } return Verify(content, expected) }