# General multipart upload order

Composite loading allows you to save objects to ColdStack in parts. This can be useful when loading or copying large objects. We recommend using multiple uploads for objects of 100 MB or more.

Composite loading consists of the following steps:

1. Boot initialization.\
   The user submits a [request to start a composite upload](startupload) , and ColdStack returns an identifier that should be used for all subsequent upload operations.\
   The custom object metadata should be passed in at this stage of the download.
2. Loading an object in parts.\
   Each part of the object is sent as a [separate request](uploadpart) and must have a sequence number that is used to assemble the object on the Object Storage side. If Object Storage receives two parts of an object with the same numbers, it will save the last one that came.\
   For each part loaded, Object Storage returns a header `ETag`in the response. The user must keep the numbers and their corresponding `ETag`for all downloaded parts. This is required for the download completion operation.
3.  Completion of the download.\
    When [requested to complete the upload,](completeupload) Object Storage collects all the uploaded parts into a single object and attaches the metadata that was passed when the upload was initialized to the object.

    In addition to the request to complete the download, the user can send a request to interrupt the download . In this case, Object Storage will delete all received parts of the object for the specified load and delete the load itself.\
    Once the download is complete or interrupted, the user will no longer be able to use the download ID in requests.

A user can run multiple compound downloads at the same time.

Composite loading methods:

| Method                                    | Description                   |
| ----------------------------------------- | ----------------------------- |
| [CreateMultipartUpload](startupload)      | Initializes a composite load. |
| [UploadPart](uploadpart)                  | Loads part of an object.      |
| [CompleteMultipartUpload](completeupload) | Ends a multipart load.        |
