def get_s3_output_config_keys()

in caller/textractcaller/t_call.py [0:0]


def get_s3_output_config_keys(output_config: OutputConfig, job_id: str, s3_client):
    if not output_config or not job_id:
        raise ValueError("no output_config or job_id")
    if not s3_client:
        s3_client = boto3.client("s3")
    params = {'Bucket': output_config.s3_bucket.strip('/'), 'Prefix': output_config.s3_prefix.strip('/') + "/" + job_id}
    logger.info(f"s3-params {params}")

    while True:
        response = s3_client.list_objects_v2(**params)

        for object in [o for o in response.get('Contents', []) if o['Key'].split('/')[-1].isnumeric()]:
            yield object['Key']

        params['ContinuationToken'] = response.get('NextContinuationToken')
        if not params['ContinuationToken']:
            break