upload method
Uploads an object and its metadata to Yandex Object Storage.
Note
Object Storage does not block objects for writes and can accept multiple write requests to the same object at once. However, the user can only get the last written object from Object Storage by default. Enable versioning to ensure that the history is saved when objects are overwritten or deleted.
To make sure an object has been delivered via the network uncorrupted, use the Content-MD5
header. Object Storage will calculate the MD5
value for the saved object. If this MD5
value does not match the value provided in the header, it will return 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.
Warning
If default object locks are configured in the bucket, the Content-MD5
header is required.
For more information on getting started with the API and the general request format, see How to use the S3 API.
Request
PUT /{bucket}/{key} HTTP/2
Path parameters
Parameter | Description |
---|---|
bucket |
Bucket name. |
key |
Object key, which is the ID the object is saved with in Object Storage. |
Headers
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 metadata. Object Storage transforms all headers starting with X-Amz-Meta- as follows: X-Amz-Meta-foo-bar_baz → X-Amz-Meta-Foo-Bar_baz .Total user-defined header size 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 |
Object storage class. Possible values:
|
X-Amz-Server-Side-Encryption |
Upload object's encrypion algorithm that takes the aws:kms value. |
X-Amz-Server-Side-Encryption-Aws-Kms-Key-Id |
ID of the KMS key for encrypting an uploaded object. |
X-Amz-Object-Lock-Mode |
Type of retention put on the object (if the bucket is versioned and object lock is enabled in it):
For an object version, you can use only retention (the |
X-Amz-Object-Lock-Retain-Until-Date |
Retention end date and time in any format described in the HTTP standardMon, 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):
For an object version, you can use only retention (the |
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"
Response
Headers
Responses can only contain common headers.
Response codes
For a list of possible responses, see Responses.