'HTTP POST request handler.'

@public
@cors_validation
@delay_denial
def POST(self, req):

    container_info = self.container_info(self.account_name, self.container_name, req)
    container_partition = container_info['partition']
    container_nodes = container_info['nodes']
    req.acl = container_info['write_acl']
    if ('swift.authorize' in req.environ):
        aresp = req.environ['swift.authorize'](req)
        if aresp:
            return aresp
    if (not container_nodes):
        return HTTPNotFound(request=req)
    error_response = check_metadata(req, 'object')
    if error_response:
        return error_response
    (req, delete_at_container, delete_at_part, delete_at_nodes) = self._config_obj_expiration(req)
    policy_index = req.headers.get('X-Backend-Storage-Policy-Index', container_info['storage_policy'])
    obj_ring = self.app.get_object_ring(policy_index)
    req.headers['X-Backend-Storage-Policy-Index'] = policy_index
    next_part_power = getattr(obj_ring, 'next_part_power', None)
    if next_part_power:
        req.headers['X-Backend-Next-Part-Power'] = next_part_power
    (partition, nodes) = obj_ring.get_nodes(self.account_name, self.container_name, self.object_name)
    req.headers['X-Timestamp'] = Timestamp.now().internal
    headers = self._backend_requests(req, len(nodes), container_partition, container_nodes, delete_at_container, delete_at_part, delete_at_nodes)
    return self._post_object(req, obj_ring, partition, headers)
