Multipart upload process
Multipart upload allows you to save objects to Object Storage in parts. This can be useful when uploading or copying large objects. We recommend using a multipart upload for objects that are at least 100 MB.
To find out the maximum size for an object you can upload, see Quotas and limits in Object Storage.
The multipart upload includes the following steps:
-
Initiating the upload.
The user sends the request to initiate a multipart upload and Object Storage returns the ID to use for all subsequent upload operations.
At this step, you should provide user-defined object metadata. -
Uploading an object in parts.
Each part of the object is sent in a separate request and must have a sequence number for Object Storage to assemble the object. If Object Storage receives two parts of the object with the same number, it will save the last one received.
For each uploaded part, Object Storage returns theETag
header in the response. The user should save the numbers and their matchingETag
values for all uploaded parts to complete the upload operation.
During the upload, you can get a list of uploaded object parts from Object Storage. -
Completing the upload.
After receiving the complete upload request, Object Storage assembles all the uploaded parts into a single object and attaches the metadata provided at the upload initiation.Note
Until the upload is complete, the object parts are stored separately and take up space, but you cannot retrieve them from Object Storage. Incomplete uploads are taken into account when calculating the space used.
In addition to the complete upload request, the user can send the abort upload request. In this case, Object Storage deletes all the parts of the object it received and the upload itself.
After completing or aborting an upload, the user will not be able to use the ID of that upload in requests.
You can run several multipart uploads simultaneously.
You can also get a list of incomplete uploads.
Multipart upload methods:
Method | Description |
---|---|
startUpload | Starts a multipart upload. |
uploadPart | Uploads a part of an object. |
copyPart | Copies part of an object. |
listParts | Returns a list of uploaded parts. |
abortUpload | Aborts a multipart upload. |
completeUpload | Completes a multipart upload. |
listUploads | Returns a list of incomplete uploads. |