Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 2025 Direct Cursus Technology L.L.C.
Yandex Object Storage
  • Pricing policy
  • Terraform reference
    • Authentication with the API
      • How to use the API
      • Signing requests
        • All services and methods
          • General multipart upload procedure
          • startUpload
          • uploadPart
          • copyPart
          • listParts
          • abortUpload
          • completeUpload
          • listUploads
        • Common request headers
        • Common response headers
        • Responses
  • Monitoring metrics
  • Audit Trails events
  • Bucket logs
  • Release notes
  • FAQ

In this article:

  • Request
  • Path parameters
  • Request parameters
  • Headers
  • Response
  • Headers
  • Response codes
  • Data schema
  1. API reference
  2. REST (Amazon S3-compatible)
  3. REST
  4. Multipart upload
  5. startUpload

startUpload method

Written by
Yandex Cloud
Updated at March 19, 2025
  • Request
    • Path parameters
    • Request parameters
    • Headers
  • Response
    • Headers
    • Response codes
    • Data schema

Returns the ID to use in all subsequent operations for uploading objects.

If you need to store objects with user-defined metadata, provide it in this request.

For more information on getting started with the API and the general request format, see How to use the S3 API.

RequestRequest

POST /{bucket}/{key}?uploads HTTP/2

Path parametersPath parameters

Parameter Description
bucket Bucket name.
key Object key. The object will be saved in Object Storage with the specified name.

Request parametersRequest parameters

Parameter Description
uploads Flag indicating a multipart upload operation.

HeadersHeaders

Use the appropriate common headers in your request.

You can also use the headers listed in the table below.

Header Description
X-Amz-Meta-* User-defined object metadata.

Object Storage converts all headers starting with X-Amz-Meta- as follows: X-Amz-Meta-foo-bar_baz → X-Amz-Meta-Foo-Bar_baz.

The total size of user-defined headers must not exceed 2 KB. The size of user-defined data is determined as the length of the UTF-8 encoded string. The size includes header names and their values.
X-Amz-Storage-Class Storage class of the object.

It may have any of the following values:
  • STANDARD: Standard storage
  • COLD, STANDARD_IA, or NEARLINE: Cold storage
  • ICE or GLACIER: Ice storage
If the header is not specified, the object storage is defined in the bucket settings.
X-Amz-Object-Lock-Mode

Type of retention put on the object (if the bucket is versioned and object lock is enabled in it):

  • GOVERNANCE: Governance-mode retention.
  • COMPLIANCE: Compliance-mode retention.

For an object version, you can use only retention (the X-Amz-Object-Lock-Mode and X-Amz-Object-Lock-Retain-Until-Date headers), only legal hold (X-Amz-Object-Lock-Legal-Hold), or both at the same time. For more information about their combined use, see Object lock types.

X-Amz-Object-Lock-Retain-Until-Date Retention end date and time in any format described in the HTTP standard, e.g., Mon, 12 Dec 2022 09:00:00 GMT. Specify it only with the X-Amz-Object-Lock-Mode header.
X-Amz-Object-Lock-Legal-Hold

Type of legal hold put on the object (if the bucket is versioned and object lock is enabled in it):

  • ON: Enabled.
  • OFF: Disabled.

For an object version, you can use only retention (the X-Amz-Object-Lock-Mode and X-Amz-Object-Lock-Retain-Until-Date headers), only legal hold (X-Amz-Object-Lock-Legal-Hold), or both at the same time. For more information about their combined use, see Object lock types.

The headers below enable you to set the ACL for the object being uploaded.

Header Description
X-Amz-Acl Sets a predefined ACL for an object.
X-Amz-Grant-Read Grants the access grantee object read permission.
X-Amz-Grant-Read-Acp Grants the access grantee object ACL read permission.
X-Amz-Grant-Write-Acp Grants the access grantee object ACL write permission.
X-Amz-Grant-Full-Control Grants the access grantee the READ, WRITE, READ_ACP, and WRITE_ACP permissions for the object.

The value for the X-Amz-Grant-* header is a comma-separated list of access grantees. Each access grantee is identified as <access_grantee_type>:<access_grantee_ID>. Object Storage supports the following types of access grantees:

  • id: Access grantee is a cloud user.
  • uri: Access grantee is a public group.

Example:

X-Amz-Grant-Read: uri="http://acs.amazonaws.com/groups/s3/AuthenticatedUsers"

ResponseResponse

HeadersHeaders

Responses can only contain common headers.

Response codesResponse codes

For a list of possible responses, see Responses.

A successful response contains additional data in XML format with the schema described below.

Data schemaData schema

<InitiateMultipartUploadResult>
  <Bucket>bucket-name</Bucket>
  <Key>object-key</Key>
  <UploadId>upload-id</UploadId>
</InitiateMultipartUploadResult>
Tag Description
InitiateMultipartUploadResult Response root tag.

Path: /InitiateMultipartUploadResult.
Bucket Name of the bucket the object is uploaded to.

Path: /InitiateMultipartUploadResult/Bucket.
Key Key associated with the object after the upload is complete.

Path: /InitiateMultipartUploadResult/Key.
UploadId Upload ID.

All subsequent upload operations must provide this ID to Object Storage.

Path: /InitiateMultipartUploadResult/UploadId.

See alsoSee also

  • Debugging requests using the AWS CLI
  • Example of sending a signed request using curl
  • Code example for generating a signature

Was the article helpful?

Previous
General multipart upload procedure
Next
uploadPart
© 2025 Direct Cursus Technology L.L.C.