def s3_bucket_keys()

in scripts/extract-bus-data.py [0:0]


def s3_bucket_keys(s3_client, bucket, prefix, suffix=None):
    """Generator for listing S3 bucket keys matching prefix and suffix"""

    kwargs = {'Bucket': bucket, 'Prefix': prefix}
    while True:
        resp = s3_client.list_objects_v2(**kwargs)
        for obj in resp['Contents']:
            key = obj['Key']
            if not suffix or key.endswith(suffix):
                yield key

        try:
            kwargs['ContinuationToken'] = resp['NextContinuationToken']
        except KeyError:
            break