<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def init_multipart_upload(self, bucket, object_name, content_type=None, amz_headers={}, metadata={}):
 """ Initiate a multipart upload to a bucket. @param bucket: The name of the bucket @param object_name: The object name @param content_type: The Content-Type for the object @param metadata: C{dict} containing additional metadata @param amz_headers: A C{dict} used to build C{x-amz-*} headers. @return: C{str} upload_id """

        objectname_plus = '%s?uploads' % object_name
        details = self._details(
            method=b"POST",
            url_context=self._url_context(bucket=bucket, object_name=objectname_plus),
            headers=self._headers(content_type),
            metadata=metadata,
            amz_headers=amz_headers,
        )
        d = self._submit(self._query_factory(details))
        d.addCallback(
            lambda (response, body): MultipartInitiationResponse.from_xml(body)
        )
        return d