帮你快速理解、总结文档立即下载

DeleteMultipleObjects

最近更新时间:2026-10-21 18:34:04
我的收藏
DeleteMultipleObjects 接口请求可以批量删除指定存储桶中的多个对象(Object),单次请求支持删除1–1000个对象。本接口提供两种响应模式:
Quiet 模式:响应中仅包含删除失败的对象信息和错误信息。
Verbose 模式:响应中包含每个对象的删除结果信息。

注意事项

单个对象的删除行为

单个对象的删除语义与 DeleteObject 一致:对象键以 / 结尾代表目录对象,不以 / 结尾代表文件对象,本接口不会对对象键末尾做任何容错。需重点关注的是:本接口起始状态码始终为 200 OK,单个对象删除失败不再以 HTTP 状态码呈现,而是以对象级错误码(例如非空目录对象的 DirNotEmpty 呈现于响应体的 <Error> 列表中)返回。

单次请求对象数量限制

单次请求中携带的对象数量必须为1–1000个,否则将返回 400 InvalidArgument。请求体中未携带任何 <Object> 节点、或携带超过1000个<Object> 节点时均按此处理。

请求

请求语法

POST /?delete HTTP/1.1
Host: <BucketName-APPID>.cosrapid.<Region>.myqcloud.com
Date: <GMT Date>
Content-Type: application/xml
Content-Length: <Content Length>
Content-MD5: <MD5>
Authorization: <Auth String>

[Request Body]
说明:
Authorization 字段的具体格式见 公共请求头部。

请求参数

此接口无请求参数。

请求头部

除 公共请求头部 外,本接口还支持以下请求头部:
Header 名称
描述
类型
是否必选
Content-MD5
RFC 1864 中定义的请求体内容的 MD5 校验值(Base64 编码)。若携带该头部,服务端会与实际接收到的请求体计算结果进行比对,不一致时返回 BadDigest
string
否

请求体

请求体为 application/xml 格式,包含要删除的对象信息:
<Delete>
<Quiet>boolean</Quiet>
<Object>
<Key>string</Key>
</Object>
<Object>
<Key>string</Key>
</Object>
</Delete>
具体节点说明:
节点名称
父节点
描述
类型
是否必选
Delete
无
包含 DeleteMultipleObjects 操作的所有请求信息
Container
是
Quiet
Delete
是否使用 Quiet 模式,默认为 false(Verbose 模式);两种模式的差异详见上文接口简介
boolean
否
Object
Delete
单个要删除的目标对象的信息
Container
是
Key
Delete.Object
要删除的目标对象的对象键(无需以 / 开头)。对象键以 / 结尾代表目录对象
string
是

响应

响应头部

仅返回 公共响应头部,本接口无私有响应头部。

响应体

响应体为 application/xml 格式:
<DeleteResult>
<Deleted>
<Key>string</Key>
</Deleted>
<Error>
<Key>string</Key>
<Code>string</Code>
<Message>string</Message>
</Error>
</DeleteResult>
具体节点说明:
节点名称
父节点
描述
类型
DeleteResult
无
保存 DeleteMultipleObjects 结果的所有信息
Container
Deleted
DeleteResult
单个删除成功的对象条目,仅当请求中 <Quiet> 为 false 时才会返回该元素
Container
Error
DeleteResult
单个删除失败的对象条目;无论 Quiet 模式如何,删除失败的对象均会出现在该列表中
Container
Deleted 节点包含的子节点:
节点名称
父节点
描述
类型
Key
DeleteResult.Deleted
删除成功的对象的对象键
string
Error 节点包含的子节点:
节点名称
父节点
描述
类型
Key
DeleteResult.Error
删除失败的对象的对象键
string
Code
DeleteResult.Error
删除失败的错误码,用来定位唯一的错误条件和确定错误场景
string
Message
DeleteResult.Error
删除失败的具体错误信息
string

错误码

本接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。

实际案例

案例一:批量删除(Verbose 模式)

请求

POST /?delete HTTP/1.1
Host: examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.com
Date: Wed, 29 May 2019 04:10:12 GMT
Content-Type: application/xml
Content-Length: 158
Content-MD5: zUd/xgzNGDrqJMJUOWV2AQ==
Authorization: q-sign-algorithm=sha1&q-ak=AKIDXXXXXXXX&q-sign-time=1559074212;1559077812&q-key-time=1559074212;1559077812&q-header-list=content-length;content-md5;content-type;date;host&q-url-param-list=delete&q-signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<Delete>
<Quiet>false</Quiet>
<Object>
<Key>example-object-1.jpg</Key>
</Object>
<Object>
<Key>example-object-2.jpg</Key>
</Object>
</Delete>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Connection: keep-alive
Date: Wed, 29 May 2019 04:10:12 GMT
x-cos-request-id: NjUwMDAwMDAwMDAwMDAwMDAw

<DeleteResult>
<Deleted>
<Key>example-object-1.jpg</Key>
</Deleted>
<Deleted>
<Key>example-object-2.jpg</Key>
</Deleted>
</DeleteResult>

案例二:批量删除(Quiet 模式)

请求

POST /?delete HTTP/1.1
Host: examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.com
Date: Wed, 29 May 2019 04:10:12 GMT
Content-Type: application/xml
Content-Length: 157
Authorization: q-sign-algorithm=sha1&q-ak=AKIDXXXXXXXX&q-sign-time=1559074212;1559077812&q-key-time=1559074212;1559077812&q-header-list=content-length;content-type;date;host&q-url-param-list=delete&q-signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<Delete>
<Quiet>true</Quiet>
<Object>
<Key>example-object-1.jpg</Key>
</Object>
<Object>
<Key>example-object-2.jpg</Key>
</Object>
</Delete>

响应

所有对象均删除成功时,响应体为空 DeleteResult:
HTTP/1.1 200 OK
Content-Type: application/xml
Connection: keep-alive
Date: Wed, 29 May 2019 04:10:12 GMT
x-cos-request-id: NjUwMDAwMDAwMDAwMDAwMDAw

<DeleteResult></DeleteResult>

案例三:批量删除目录对象(部分失败)

本案例演示批量删除时其中一个目录对象因非空而失败的场景。

请求

POST /?delete HTTP/1.1
Host: examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.com
Date: Wed, 29 May 2019 04:10:12 GMT
Content-Type: application/xml
Content-Length: 200
Authorization: q-sign-algorithm=sha1&q-ak=AKIDXXXXXXXX&q-sign-time=1559074212;1559077812&q-key-time=1559074212;1559077812&q-header-list=content-length;content-type;date;host&q-url-param-list=delete&q-signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<Delete>
<Quiet>false</Quiet>
<Object>
<Key>example-object-1.jpg</Key>
</Object>
<Object>
<Key>folder-empty/</Key>
</Object>
<Object>
<Key>folder-non-empty/</Key>
</Object>
</Delete>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Connection: keep-alive
Date: Wed, 29 May 2019 04:10:12 GMT
x-cos-request-id: NjUwMDAwMDAwMDAwMDAwMDAw

<DeleteResult>
<Deleted>
<Key>example-object-1.jpg</Key>
</Deleted>
<Deleted>
<Key>folder-empty/</Key>
</Deleted>
<Error>
<Key>folder-non-empty/</Key>
<Code>DirNotEmpty</Code>
<Message>Directory not empty.</Message>
</Error>
</DeleteResult>