def delete_objects()

in CommonLayerCode/datalake-library/python/datalake_library/interfaces/s3_interface.py [0:0]


    def delete_objects(self, bucket, prefix):
        prefix = unquote_plus(prefix)
        self._logger.info('Deleting all objects in bucket {} with prefix {}'.format(bucket, prefix))
        object_paginator = self._s3_client.get_paginator('list_objects_v2')
        response_iterator = object_paginator.paginate(
            Bucket=bucket,
            Prefix=prefix
        )
        for response in response_iterator:
            if 'Contents' in response:
                objects_to_delete = [{'Key': obj['Key']} for obj in response['Contents']]
                delete_response = self._s3_client.delete_objects(
                    Bucket=bucket,
                    Delete={
                        'Objects': objects_to_delete
                    }
                )
                if 'Errors' in delete_response:
                    self._logger.info('Object delete failed')
                    delete_errors = delete_response['Errors']
                    raise ObjectDeleteFailedException(json.dumps(delete_errors))

        self._logger.info('Successfully deleted all objects in bucket {} with prefix {}'.format(bucket, prefix))