'This operation initiates a multipart upload. Amazon Glacier
creates a multipart upload resource and returns its ID in the
response. The multipart upload ID is used in subsequent
requests to upload parts of an archive (see
UploadMultipartPart).
When you initiate a multipart upload, you specify the part
size in number of bytes. The part size must be a megabyte
(1024 KB) multiplied by a power of 2-for example, 1048576 (1
MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so
on. The minimum allowable part size is 1 MB, and the maximum
is 4 GB.
Every part you upload to this resource (see
UploadMultipartPart), except the last one, must have the same
size. The last one can be the same size or smaller. For
example, suppose you want to upload a 16.2 MB file. If you
initiate the multipart upload with a part size of 4 MB, you
will upload four parts of 4 MB each and one part of 0.2 MB.
You don\'t need to know the size of the archive when you start
a multipart upload because Amazon Glacier does not require you
to specify the overall archive size.
After you complete the multipart upload, Amazon Glacier
removes the multipart upload resource referenced by the ID.
Amazon Glacier also removes the multipart upload resource if
you cancel the multipart upload or it may be removed if there
is no activity for a period of 24 hours.
An AWS account has full permission to perform all operations
(actions). However, AWS Identity and Access Management (IAM)
users don\'t have any permissions by default. You must grant
them explicit permission to perform specific actions. For more
information, see `Access Control Using AWS Identity and Access
Management (IAM)`_.
For conceptual information and underlying REST API, go to
`Uploading Large Archives in Parts (Multipart Upload)`_ and
`Initiate Multipart Upload`_ in the Amazon Glacier Developer
Guide .
The part size must be a megabyte (1024 KB) multiplied by a power of
2, for example, 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB),
8388608 (8 MB), and so on. The minimum allowable part size is 1 MB,
and the maximum is 4 GB (4096 MB).
:type vault_name: str
:param vault_name: The name of the vault.
:type description: str
:param description: The archive description that you are uploading in
parts.
:type part_size: int
:param part_size: The size of each part except the last, in bytes. The
last part can be smaller than this part size.'

def initiate_multipart_upload(self, vault_name, part_size, description=None):

    response_headers = [('x-amz-multipart-upload-id', u'UploadId'), ('Location', u'Location')]
    headers = {'x-amz-part-size': str(part_size)}
    if description:
        headers['x-amz-archive-description'] = description
    uri = ('vaults/%s/multipart-uploads' % vault_name)
    response = self.make_request('POST', uri, headers=headers, ok_responses=(201,), response_headers=response_headers)
    return response
