'Sets metadata on path using metadata_prefix to set values in headers of
POST request.
:param path: Path to do POST on.
:param metadata: Dict of metadata to set.
:param metadata_prefix: Prefix used to set metadata values in headers
of requests, used to prefix keys in metadata
when setting metadata, defaults to \'\'.
:param acceptable_statuses: List of status for valid responses,
defaults to (2,).
:raises UnexpectedResponse: Exception raised when requests fail
to get a response with an acceptable status
:raises Exception: Exception is raised when code fails in an
unexpected way.'

def _set_metadata(self, path, metadata, metadata_prefix='', acceptable_statuses=(2,)):

    headers = {}
    for (k, v) in metadata.items():
        if k.lower().startswith(metadata_prefix):
            headers[k] = v
        else:
            headers[('%s%s' % (metadata_prefix, k))] = v
    self.make_request('POST', path, headers, acceptable_statuses)
