Get the input file from s3 or disk, untargz if necessary and then write to file job store.
    :param job: job
    :param str input_flag: The name of the flag
    :param str input_file: The value passed in the config file
    :return: The jobstore ID for the file

def get_pipeline_inputs(job, input_flag, input_file):
    """
    Get the input file from s3 or disk, untargz if necessary and then write to file job store.
    :param job: job
    :param str input_flag: The name of the flag
    :param str input_file: The value passed in the config file
    :return: The jobstore ID for the file
    """
    work_dir = job.fileStore.getLocalTempDir()
    job.fileStore.logToMaster('Obtaining file (%s) to the file job store' % os.path.basename(
            input_file))
    if input_file.startswith('http'):
        assert input_file.startswith('https://s3'), input_file + ' is not an S3 file'
        input_file = get_file_from_s3(job, input_file, write_to_jobstore=False)
    elif input_file.startswith('S3'):
        input_file = get_file_from_s3(job, input_file, write_to_jobstore=False)
    else:
        assert os.path.exists(input_file), 'Bogus Input : ' + input_file
    # If the file isn't a tarball, then it is a single file that is tar.gzipped for the
    # sake of maximum compression instead of enveloping a folder. Thus it should be
    # decompressed before writing to job store. Also, this is cool but they will by
    # default also be dumped into the cache!
    if 'tar' not in input_flag:
        input_file = untargz(input_file, work_dir)
    return job.fileStore.writeGlobalFile(input_file)