def _s3_upload_files_recursively()

in app/source/dragen/src/scheduler/aws_utils.py [0:0]


def _s3_upload_files_recursively(dir_path, bucket, obj_key, s3_client, transfer_client):
    filenames = [fpath for dirpath in os.walk(dir_path) for fpath in
                 glob(os.path.join(dirpath[0], '*'))]
    # upload a finite number of files for safety
    filenames = filenames[:100]
    tot_bytes = 0

    # make sure there is a trailing '/' in obj_key to indicate it is 'root' and not actual keyname
    if not obj_key.endswith('/'):
        obj_key += '/'

    for filename in filenames:
        if os.path.isfile(filename):
            size = _s3_upload_file(filename, bucket, obj_key, s3_client, transfer_client)
            if size:
                tot_bytes += size
    return tot_bytes