Get the remote file size in bytes

    Parameters
    ----------
    url : str, optional
        The full url of the file. Use this option to explicitly
        state the full url.
    file_name : str, optional
        The base file name. Use this argument along with pb_dir if you
        want the full url to be constructed.
    pb_dir : str, optional
        The base file name. Use this argument along with file_name if
        you want the full url to be constructed.

    Returns
    -------
    remote_file_size : int
        Size of the file in bytes

def _remote_file_size(url=None, file_name=None, pb_dir=None):
    """
    Get the remote file size in bytes

    Parameters
    ----------
    url : str, optional
        The full url of the file. Use this option to explicitly
        state the full url.
    file_name : str, optional
        The base file name. Use this argument along with pb_dir if you
        want the full url to be constructed.
    pb_dir : str, optional
        The base file name. Use this argument along with file_name if
        you want the full url to be constructed.

    Returns
    -------
    remote_file_size : int
        Size of the file in bytes

    """

    # Option to construct the url
    if file_name and pb_dir:
        url = posixpath.join(config.db_index_url, pb_dir, file_name)

    response = requests.head(url, headers={'Accept-Encoding': 'identity'})
    # Raise HTTPError if invalid url
    response.raise_for_status()

    # Supposed size of the file
    remote_file_size = int(response.headers['content-length'])

    return remote_file_size