Creating a Multipart Upload

You can create a multipart upload to store large objects in a bucket in several smaller parts.

You can create a multipart upload in one of your buckets or in a bucket for which you have the appropriate permissions.

When all the parts are uploaded, you need to specify if you want to complete the multipart upload to reconstitute the object within your bucket, or to cancel the multipart upload and remove all the parts you uploaded in your bucket.

You can create several parts in a multipart upload. For more information, see Uploading a Part.

As the storage capacity is only restricted by the storage platform itself, objects are not limited in size. You can upload an object whose size is from 1 byte to 5 GiB in a single command. However, it is highly recommended to upload objects of 100 MiB or more in several smaller parts.

You cannot modify the ACL or permissions of the multipart upload once it is created.

By default, the objects your store are private. However, you can grant access to the objects that you stored in your bucket with other users setting an Access Control List (ACL). For more information, see Access Control List (ACL) Reference.

Creating a Multipart Upload Using AWS CLI

To create a multipart upload, use the create-multipart-upload command following this syntax:

Request sample
$ aws s3api create-multipart-upload \
    --profile YOUR_PROFILE \
    --bucket BUCKET \
    --acl private \
    --grant-full-control "id=USER_ID, id=USER_ID" \
    --grant-read "id=USER_ID, id=USER_ID" \
    --grant-read-acp "id=USER_ID, id=USER_ID" \
    --grant-write-acp "id=USER_ID, id=USER_ID" \

This command contains the following attributes that you need to specify:

  • (optional) profile: The named profile you want to use, created when configuring AWS CLI. For more information, see Installing and Configuring AWS CLI.

  • bucket: The bucket in which you want to create the multipart upload.

  • key: The name you want to give to the multipart upload.

    • When specifying new permissions, all the previous permissions are replaced. Therefore, you need to specify both the existing permissions that you want to keep (including for yourself) and the new permissions that you want to give in a single command.

    • If you are the owner of the bucket, you can lose your own permissions but not the ability to manage the ACL itself.

    For more information about existing permissions, see Getting Information About a Bucket ACL and Getting Information About an Object ACL.

  • (optional) acl: The ACL to apply to the multipart upload (private | public-read | public-read-write | authenticated-read | bucket-owner-read | bucket-owner-full-control).

  • (optional) grant-full-control: One or more IDs of users to whom you grant the full-control permission.

  • (optional) grant-read: One or more IDs of users to whom you grant the read permission.

  • (optional) grant-read-acp: One or more IDs of users to whom you grant the read-acp permission.

  • (optional) grant-write-acp: One or more IDs of users to whom you grant the write-acp permission.

  • endpoint: The endpoint corresponding to the Region you want to send the request to.

The create-multipart-upload command returns the following elements:

  • Bucket: The name of the bucket.

  • UploadId: The ID of the multipart upload.

    Save this element as it is mandatory for further commands.

  • Key: The name of the multipart upload.

Result Sample
    "Bucket": "BUCKET",
    "UploadId": "2~xrosnH8pbKTk3sjXijfGIUN1KAEM3Yc",

Related Pages

AWS™ and Amazon Web Services™ are trademarks of Amazon Technologies, Inc or its affiliates in the United States and/or other countries.