'Batch delete given a list of object uris'

def object_batch_delete_uri_strs(self, uris):

    def compose_batch_del_xml(bucket, key_list):
        body = u'<?xml    version="1.0"    encoding="UTF-8"?><Delete>'
        for key in key_list:
            uri = S3Uri(key)
            if (uri.type != 's3'):
                raise ValueError(("Expected    URI    type    's3',    got    '%s'" % uri.type))
            if (not uri.has_object()):
                raise ValueError(("URI    '%s'    has    no    object" % key))
            if (uri.bucket() != bucket):
                raise ValueError('The    batch    should    contain    keys    from    the    same    bucket')
            object = saxutils.escape(uri.object())
            body += (u'<Object><Key>%s</Key></Object>' % object)
        body += u'</Delete>'
        body = encode_to_s3(body)
        return body
    batch = uris
    if (len(batch) == 0):
        raise ValueError('Key    list    is    empty')
    bucket = S3Uri(batch[0]).bucket()
    request_body = compose_batch_del_xml(bucket, batch)
    headers = {'content-md5': compute_content_md5(request_body), 'content-type': 'application/xml'}
    request = self.create_request('BATCH_DELETE', bucket=bucket, headers=headers, body=request_body, uri_params={'delete': None})
    response = self.send_request(request)
    return response
