def direct_head_object(node, part, account, container, obj, conn_timeout=5, response_timeout=15):
 path = ('/%s/%s/%s' % (account, container, obj))
 with Timeout(conn_timeout):
  conn = http_connect(node['ip'], node['port'], node['device'], part, 'HEAD', path)
 with Timeout(response_timeout):
  resp = conn.getresponse()
  resp.read()
 if (not is_success(resp.status)):
  raise ClientException(('Object server %s:%s direct HEAD %s gave status %s' % (node['ip'], node['port'], repr(('/%s/%s%s' % (node['device'], part, path))), resp.status)), http_host=node['ip'], http_port=node['port'], http_device=node['device'], http_status=resp.status, http_reason=resp.reason)
 resp_headers = {}
 for (header, value) in resp.getheaders():
  resp_headers[header.lower()] = value
 return resp_headers

def direct_head_object ( node , part , account , container , obj , conn_timeout = 5 , response_timeout = 15 ) : path = ( '/%s/%s/%s' % ( account , container , obj ) ) with Timeout ( conn_timeout ) : conn = http_connect ( node [ 'ip' ] , node [ 'port' ] , node [ 'device' ] , part , 'HEAD' , path ) with Timeout ( response_timeout ) : resp = conn . getresponse ( ) resp . read ( ) if ( not is_success ( resp . status ) ) : raise ClientException ( ( 'Object server %s:%s direct HEAD %s gave status %s' % ( node [ 'ip' ] , node [ 'port' ] , repr ( ( '/%s/%s%s' % ( node [ 'device' ] , part , path ) ) ) , resp . status ) ) , http_host = node [ 'ip' ] , http_port = node [ 'port' ] , http_device = node [ 'device' ] , http_status = resp . status , http_reason = resp . reason ) resp_headers = { } for ( header , value ) in resp . getheaders ( ) : resp_headers [ header . lower ( ) ] = value return resp_headers
request object information directly from the object server .