Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
  • Справочник Terraform
    • Аутентификация в API
      • Как пользоваться API
      • Подписывание запросов
        • Все сервисы и методы
          • Общий порядок составной загрузки
          • startUpload
          • uploadPart
          • copyPart
          • listParts
          • abortUpload
          • completeUpload
          • listUploads
        • Общие заголовки запросов
        • Общие заголовки ответов
        • Ответы
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Запрос
  • Path параметры
  • Query параметры
  • Заголовки
  • Схема данных
  • Ответ
  • Заголовки
  • Коды ответов
  • Схема данных
  1. Справочник API
  2. REST (совместимый с Amazon S3)
  3. REST
  4. Multipart upload
  5. completeUpload

Метод completeUpload

Статья создана
Yandex Cloud
Обновлена 6 сентября 2024 г.
  • Запрос
    • Path параметры
    • Query параметры
    • Заголовки
    • Схема данных
  • Ответ
    • Заголовки
    • Коды ответов
    • Схема данных

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

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

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

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

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

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

Подробнее о подготовке к работе с API и общем виде запроса см. в разделе Как пользоваться S3 API.

ЗапросЗапрос

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

Path параметрыPath параметры

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

Query параметры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.

См. такжеСм. также

  • Отладка запросов с помощью утилиты AWS CLI
  • Пример отправки подписанного запроса с помощью утилиты curl
  • Пример кода для генерации подписи

Была ли статья полезна?

Предыдущая
abortUpload
Следующая
listUploads
Проект Яндекса
© 2025 ООО «Яндекс.Облако»