code: func (call *UploadRichMenuImageCall) Do() (*BasicResponse, error) {
  	body, err := os.Open(call.imgPath)
  	if err != nil {
  		return nil, err
  	}
  	defer body.Close()
  	fi, err := body.Stat()
  	if err != nil {
  		return nil, err
  	}
  	buf := make([]byte, 512)
  	n, err := body.Read(buf) // n, in case the file size < 512
  	if err != nil && err != io.EOF {
  		return nil, err
  	}
  	body.Seek(0, 0)
  	endpoint := fmt.Sprintf(APIEndpointUploadRichMenuImage, call.richMenuID)
  	req, err := http.NewRequest("POST", call.c.url(endpoint), body)
  	if err != nil {
  		return nil, err
  	}
  	req.Header.Set("Content-Type", http.DetectContentType(buf[:n]))
  	req.ContentLength = fi.Size()
  	res, err := call.c.do(call.ctx, req)
  	if err != nil {
  		return nil, err
  	}
  	defer closeResponse(res)
  	return decodeToBasicResponse(res)
  }
docs: // Do method