upload method

Uploads an object and its metadata to Yandex Object Storage.


Object Storage doesn't block objects for writing and can accept multiple requests to write to the same object in parallel, but the user can only get the latest object saved from Object Storage.

To make sure an object is passed via the network uncorrupted, use the Content-MD5 header. Object Storage calculates the MD5 value for a saved object and, if the calculated MD5 value doesn't match the value passed in the header, it returns an error. You can also perform this check on the client side by comparing the ETag from the Object Storage response with the precalculated MD5 value.


PUT /{bucket}/{key} HTTP/1.1

Path parameters

Parameter Description
bucket Name of the bucket.
key Object key. ID for saving the object in Object Storage.


Use the necessary common request headers in requests.

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

Header Description
x-amz-meta-* User-defined object metadata.

Object Storage considers all headers starting with x-amz-meta- as user-defined. It doesn't process these headers. Instead, it saves them in their original format.

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 header names and their values are included when calculating the size.
x-amz-storage-class Object storage class.

Possible values:
- STANDARD for uploading an object to standard storage.
- COLD, STANDARD_IA, and NEARLINE for uploading an object to cold storage.

If the header is omitted, the object is saved to the storage specified in the bucket settings.

By using the headers listed below, you can set the ACL for an object to be uploaded.

Heading 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 following permissions: READ, WRITE, READ_ACP, and WRITE_ACP for an object.

The value for a x-amz-grant-* header is a comma-separated list of access grantees. Each access grantee is identified in a structure like: <access grantee type>:<access grantee ID>. Object Storage supports the following types of access grantees:

  • id — access grantee — Yandex.Cloud user.
  • uri — access grantee — system group.


x-amz-grant-read: uri="http://acs.amazonaws.com/groups/s3/AuthenticatedUsers"



Responses can only contain common response headers.

Response codes

For the list of possible responses, see Responses.