Метод deleteMultipleObjects
Удаляет объекты по списку ключей, переданному в запросе.
Выполняется быстрее, чем удаление тех же объектов по одному отдельными запросами.
Список на удаление может содержать не более 1000 ключей.
Если объекта не существует, то Object Storage в ответе отметит его как удаленный.
Ответ можно настроить так, что Object Storage выдаст одну из выборок:
- Статусы всех операций удаления.
- Только статусы с ошибкой удаления. В этом случае, если не произошло ни одной ошибки, ответ будет пустым.
Подробнее о подготовке к работе с API и общем виде запроса см. в разделе Как пользоваться S3 API.
Запрос
POST /{bucket}?delete HTTP/2
Path параметры
| Параметр | Описание |
|---|---|
bucket |
Имя бакета. |
Query параметры
| Параметр | Описание |
|---|---|
delete |
Флаг, обозначающий операцию удаления. |
Заголовки
Используйте в запросе необходимые общие заголовки.
Для данного запроса заголовки Content-MD5 и Content-Length обязательны.
Также, если на версии объектов в версионируемом бакете установлены временные управляемые блокировки (governance-mode retention), обязательно используйте заголовок, описанный ниже, чтобы обойти блокировки и подтвердить удаление. Удалить версию объекта с блокировкой может только пользователь с ролью storage.admin. Проверить блокировку можно с помощью метода getObjectRetention.
| Заголовок | Описание |
|---|---|
X-Amz-Bypass-Governance-Retention |
Заголовок, подтверждающий обход временной управляемой блокировки. Укажите значение true. |
Схема данных
Перечень ключей на удаление передается в XML формате.
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<KeyCount>1</KeyCount>
<Name>my-sample-bucket</Name>
<Prefix></Prefix>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>text.txt</Key>
<LastModified>2025-05-15T07:23:08.030Z</LastModified>
<Owner>
<ID>ajegtlf2q28a********</ID>
<DisplayName>ajegtlf2q28a********</DisplayName>
</Owner>
<ETag>"f75a361db63aa4722fb8e083********"</ETag>
<Size>103</Size>
<StorageClass>STANDARD</StorageClass>
<TagSet></TagSet>
</Contents>
</ListBucketResult>
| Тег | Описание |
|---|---|
Delete |
Содержит тело ответа. Путь: /Delete. |
Quiet |
<ListBucketResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<KeyCount>1</KeyCount>
<Name>my-sample-bucket</Name>
<Prefix></Prefix>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>text.txt</Key>
<LastModified>2025-05-15T07:23:08.030Z</LastModified>
<Owner>
<ID>ajegtlf2q28a********</ID>
<DisplayName>ajegtlf2q28a********</DisplayName>
</Owner>
<ETag>"f75a361db63aa4722fb8e083********"</ETag>
<Size>103</Size>
<StorageClass>STANDARD</StorageClass>
<TagSet></TagSet>
</Contents>
</ListBucketResult> устанавливает тихийрежим. Object Storage запишет в ответ только ошибки удаления. Если ошибок нет, запрос не возвращает тело ответа. Если на момент запроса указанный в нем объект не существует, вернется результат Deleted.Если не указан, то значение по умолчанию — false.Путь: /Delete/Quiet. |
Object |
Содержит параметры удаления объекта. Путь: /Delete/Object. |
Key |
Ключ объекта. Путь: /Delete/Object/Key. |
Ответ
Заголовки
Ответ может содержать только общие заголовки.
Коды ответов
Перечень возможных ответов смотрите в разделе Ответы.
Успешный ответ содержит дополнительные данные в формате XML, схема которого описана ниже.
Структура данных
<DeleteResult>
<Deleted>
<Key>some/key.txt</Key>
</Deleted>
<Error>
<Key>some/another/key.txt</Key>
<Code>TextErrorCode</Code>
<Message>Describing message</Message>
</Error>
</DeleteResult>
| Тег | Описание |
|---|---|
DeleteResult |
Тело ответа. Путь: /DeleteResult. |
Deleted |
Успешно удаленный объект. Отсутствует, если в запросе был выставлен <Quiet>true</Quiet>.Путь: /DeleteResult/Deleted. |
Key |
Ключ объекта. Путь: /DeleteResult/Deleted/Key или /DeleteResult/Error/Key |
Error |
Ошибка удаления объекта. Путь: /DeleteResult/Error. |
Code |
Код ошибки. Путь: /DeleteResult/Error/Code. |
Message |
Описание ошибки. Путь: /DeleteResult/Error/Message. |