Метод upload
Загружает объект и его метаданные в Yandex Object Storage.
Примечание
Object Storage не блокирует объект на запись и может принимать одновременно несколько запросов на запись одного объекта, однако по умолчанию пользователь сможет получить из Object Storage только последний записанный объект. Чтобы при перезаписи или удалении объектов сохранялась история, включите версионирование.
Чтобы убедиться, что объект передан по сети без повреждений, используйте заголовок Content-MD5
. Object Storage вычислит MD5
для сохраненного объекта и если вычисленная MD5
не совпадет с переданной в заголовке, вернет ошибку. Эту проверку можно выполнить и на стороне клиента, сравнив ETag
из ответа Object Storage с предварительно вычисленной MD5
.
Важно
Если в бакете настроены блокировки версий объектов по умолчанию, использовать заголовок Content-MD5
обязательно.
Подробнее о подготовке к работе с API и общем виде запроса см. в разделе Как пользоваться S3 API.
Запрос
PUT /{bucket}/{key} HTTP/2
Path параметры
Параметр | Описание |
---|---|
bucket |
Имя бакета. |
key |
Ключ объекта. Идентификатор, под которым объект будет сохранен в Object Storage. |
Заголовки
Используйте в запросе необходимые общие заголовки.
Дополнительно можно использовать заголовки, перечисленные в таблице ниже.
Заголовок | Описание |
---|---|
X-Amz-Meta-* |
Пользовательские метаданные объекта. Все заголовки, начинающиеся с X-Amz-Meta- , Object Storage преобразует по правилу: X-Amz-Meta-foo-bar_baz → X-Amz-Meta-Foo-Bar_baz .Общий размер пользовательских заголовков не должен превышать 2KB. Размер пользовательских данных определяется как длина строки в кодировке UTF-8. В размере учитываются и названия заголовков и их значения. |
X-Amz-Storage-Class |
Класс хранилища объекта. Может иметь любое из значений:
|
X-Amz-Server-Side-Encryption |
Алгоритм шифрования загружаемого объекта. Доступные значения: aws:kms . |
X-Amz-Server-Side-Encryption-Aws-Kms-Key-Id |
Идентификатор ключа KMS для шифрования загружаемого объекта. |
X-Amz-Object-Lock-Mode |
Тип временной блокировки, устанавливаемой на объект (если бакет версионируемый и в нем включен механизм блокировок):
Вы можете установить на версию объекта только временную блокировку (заголовки |
X-Amz-Object-Lock-Retain-Until-Date |
Дата и время окончания временной блокировки в любом из форматов, описанных в стандарте HTTPMon, 12 Dec 2022 09:00:00 GMT . Указывается только вместе с заголовком X-Amz-Object-Lock-Mode . |
X-Amz-Object-Lock-Legal-Hold |
Статус бессрочной блокировки, устанавливаемой на объект (если бакет версионируемый и в нем включен механизм блокировок):
Вы можете установить на версию объекта только временную блокировку (заголовки |
С помощью заголовков, перечисленных ниже, можно установить ACL для загружаемого объекта.
Заголовок | Описание |
---|---|
X-Amz-Acl |
Устанавливает предопределенный ACL для объекта. |
X-Amz-Grant-Read |
Устанавливает получателю доступа разрешение на чтение объекта. |
X-Amz-Grant-Read-Acp |
Устанавливает получателю доступа разрешение на чтение ACL объекта. |
X-Amz-Grant-Write-Acp |
Устанавливает получателю доступа разрешение на запись ACL объекта. |
X-Amz-Grant-Full-Control |
Устанавливает получателю доступа разрешения: READ , WRITE , READ_ACP , WRITE_ACP на объект. |
Значение для заголовков X-Amz-Grant-*
представляет собой разделенный запятыми список получателей доступа. Каждый получатель доступа идентифицируется структурой вида <тип_получателя_доступа>:<идентификатор_получателя_доступа>
. Object Storage поддерживает следующие типы получателей:
id
— получатель доступа — пользователь облака.uri
— получатель доступа — публичная группа.
Пример:
X-Amz-Grant-Read: uri="http://acs.amazonaws.com/groups/s3/AuthenticatedUsers"
Ответ
Заголовки
Ответ может содержать только общие заголовки.
Коды ответов
Перечень возможных ответов смотрите в разделе Ответы.