Метод completeUpload
Запрос завершает составную загрузку.
При получении запроса Object Storage:
- Собирает конечный объект из полученных в процессе загрузки частей в порядке их номеров
- Удаляет идентификатор загрузки, так что все последующие запросы с идентификатором загрузки вернут ошибку
NoSuchUpload
.
При завершении загрузки клиент должен предоставить список частей, которые он отправлял. Описание каждой части должно содержать ETag
, который клиент получает в ответ на каждую загруженную часть. Смотрите раздел Метод uploadPart.
В зависимости от размера объекта и количества частей операция может занять несколько минут.
Если запрос завершился с ошибкой, то клиентское приложение должно быть готово повторить запрос.
Подробнее о подготовке к работе с API и общем виде запроса см. в разделе Как пользоваться S3 API.
Запрос
POST /{bucket}/{key}?uploadId=UploadId HTTP/2
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 . |