docs: def upload_file(file_path, remote_path, ftp_conf, remove_file=False):
      """上传第一个指定的文件到 FTP 服务器。
  
      :param str file_path: 待上传文件的绝对路径。
      :param str remote_path: 文件在 FTP 服务器上的相对路径（相对于 FTP 服务器的初始路径）。
      :param dict ftp_conf: ftp配置文件，详见 :func:`get_ftp` 。
      :param bool remove_file: 上传成功后是否删除本地文件。
      :returns: FTP 服务器上的文件列表
      :rtype: list
  
      """
      check_ftp_conf(ftp_conf)
  
      ftp, ftpStr = get_ftp(ftp_conf)
      lf = open(file_path, 'rb')
      slog.info('Uploading "%s" to "%s/%s" ......'%(file_path, ftpStr, remote_path))
      ftp.storbinary("STOR %s"%remote_path, lf)
      filelist = ftp.nlst()
      ftp.quit()
      lf.close()
      if remove_file:
          os.remove(file_path)
      slog.info('Upload done.')
      return filelist