code: func Md5(path string) (string, error) {
  	var buffer [4096]byte
  	file, err := os.Open(path)
  	if err != nil {
  		return "", err
  	}
  	defer file.Close()
  	md5 := md5.New()
  
  	for read, err := file.Read(buffer[:]); err != io.EOF && read != 0; read, err = file.Read(buffer[:]) {
  		if err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {
  			return "", err
  		}
  		md5.Write(buffer[:read])
  	}
  
  	return hex.EncodeToString(md5.Sum(nil)), nil
  }
docs: // Md5 return the md5 sum of a file