Метод completeUpload

Запрос завершает составную загрузку.

При получении запроса Object Storage:

  • Собирает конечный объект из полученных в процессе загрузки частей в порядке их номеров
  • Удаляет идентификатор загрузки, так что все последующие запросы с идентификатором загрузки вернут ошибку NoSuchUpload.

При завершении загрузки клиент должен предоставить список частей, которые он отправлял. Описание каждой части должно содержать ETag, который клиент получает в ответ на каждую загруженную часть. Смотрите раздел Метод uploadPart.

В зависимости от размера объекта и количества частей операция может занять несколько минут.

Если запрос завершился с ошибкой, то клиентское приложение должно быть готово повторить запрос.

Запрос

POST /{bucket}/{key}?uploadId=UploadId HTTP/1.1

Path параметры

Параметр Описание
bucket Имя бакета.
key Ключ объекта.

Query параметры

Параметр Описание
uploadId Идентификатор составной загрузки, который Object Storage вернул при инициализации.

Заголовки

Используйте в запросе необходимые общие заголовки.

Схема данных

Список частей составной загрузки передается в виде XML-файла следующего формата:

<CompleteMultipartUpload>
  <Part>
    <PartNumber>PartNumber</PartNumber>
    <ETag>ETag</ETag>
  </Part>
  ...
</CompleteMultipartUpload>
Тег Описание
CompleteMultipartUpload Данные запроса.

Путь: /CompleteMultipartUpload.
Part Данные о загруженной части объекта.

Путь: /CompleteMultipartUpload/Part.
PartNumber Номер части.

Уникальный идентификатор, определяющий положение части среди других частей в загрузке.

Путь: /CompleteMultipartUpload/Part/PartNumber.
ETag Идентификатор, который клиент получил от Object Storage в ответ на загрузку части.

Путь: /CompleteMultipartUpload/Part/ETag.

Ответ

Заголовки

Ответ может содержать только общие заголовки.

Коды ответов

Перечень возможных ответов смотрите в разделе Ответы.

Дополнительно, Object Storage может вернуть ошибки, описанные в таблице ниже.

Ошибка Описание HTTP-код
NoSuchUpload Указанная загрузка не существует. Возможно указан неверный идентификатор загрузки или загрузка была завершена или удалена. 404 Not Found
InvalidPart Некоторые из указанных частей не найдены.

Возможные причины:
- Части не загружены.
- Переданный ETag не совпадает с сохраненным.
400 Bad Request
InvalidPartOrder Список частей передан не в упорядоченном по возрастанию виде.

Список должен быть отсортирован по возрастанию по номерам частей.
400 Bad Request

Успешный ответ содержит дополнительные данные в формате XML, схема которого описана ниже.

Схема данных

<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Location>http://Example-Bucket.storage.yandexcloud.net/Example-Object</Location>
  <Bucket>Example-Bucket</Bucket>
  <Key>Example-Object</Key>
  <ETag>"3858f62230ac3c915f300c664312c11f-9"</ETag>
</CompleteMultipartUploadResult>
Тег Описание
CompleteMultipartUploadResult Данные ответа.

Путь: /CompleteMultipartUploadResult.
Location URI созданного в результате загрузки объекта.

Путь: /CompleteMultipartUploadResult/Location.
Bucket Имя бакета, в котором находится объект.

Путь: /CompleteMultipartUploadResult/Bucket.
Key Ключ созданного объекта.

Путь: /CompleteMultipartUploadResult/Key.
ETag Хэш объекта.

ETag может быть, а может и не быть MD5.

Путь: /CompleteMultipartUploadResult/ETag.