批量删除Object功能支持用一个HTTP请求删除一个Bucket中的多个Object。如果你知道你想删除的Object名字,此功能可以批量删除这些Object,而不用发送多个单独的删除请求。
批量删除请求包含一个不超过1000个Object的XML列表。在这个xml中,需要指定要删除的object的名字。对于每个Object,OOS都会返回删除的结果,成功或者失败。注意,如果请求中的Object不存在,那么OOS也会返回删除成功。
批量删除功能支持两种格式的响应,全面信息和简明信息。默认情况下,OOS在响应中会显示全面信息,即包含每个Object的删除结果。在简明信息模式下,OOS只返回删除出错的object的结果。对于成功删除的Object,在响应中将不返回任何信息。
最后,批量删除功能必须使用Content-MD5请求头,OOS使用此头来保证请求体在传输过程中没有被修改。
请求语法
POST /?delete HTTP/1.1
Host: BucketName.oos-cn.ctyunapi.cn
Content-Length: Size
Content-MD5: MD5
Date: Date
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<Delete>
<Quiet>true</Quiet>
<Object>
<Key>Key</Key>
</Object>
<Object>
<Key>Key</Key>
</Object>
...
</Delete>
请求头
名称 | 描述 | 是否必须 |
---|---|---|
Content-MD5 | Base64编码,128位的MD5,这个请求头必须被使用,以保证数据在传输过程中没有被篡改。参考RFC1864。 类型:字符串。 |
是 |
Content-Length | 请求体的长度。 类型:字符串。 取值:大于等于0,小于等于210241024的整数。 |
是 |
请求参数
名称 描述 是否必须 Delete 包含整个请求的容器。
类型:容器。
子节点:Quiet、Object。
是 Quiet 使用简明信息模式来返回响应。
类型:Boolean。
取值:
true:使用简明信息模式返回响应。
false:采用详细信息模式返回响应。
默认值为false。
父节点:Delete。
否 Object 包含被删除object的容器。
类型:容器。
父节点:Delete。
子节点:Key。
是 Key 被删除object名。
类型:字符串。
父节点:Object。
是
响应结果
名称 | 描述 |
---|---|
DeleteResult | 包含整个响应的容器。 类型:容器。 子节点:Deleted、Error。 |
Deleted | 成功删除的容器,包含成功删除的object。 类型:容器。 父节点:DeleteResult。 |
Key | 尝试删除的object名。 类型:字符串。 父节点:Deleted或 Error。 |
Error | 删除失败的容器,包含删除失败的object信息。 类型:容器。 父节点:DeleteResult。 子节点:Key、Code、Message。 |
Code | 删除失败的状态码:AccessDenied、InternalError。 类型:字符串。 父节点:Error。 |
Message | 错误的描述。 类型:字符串。 父节点:Error。 |
请求示例
下面的请求批量删除一些object,有些删除成功,有些失败(例如没有权限删除)。
POST /?delete HTTP/1.1
Host: example-bucket.oos-cn.ctyunapi.cn
Date: Mon, 11 Apr 2011 20:34:56 GMT
Content-MD5: p5/WA/oEr30qrEEl21PAqw==
Authorization: SignatureValue
Content-Length: 125
Connection: Keep-Alive
<Delete>
<Object>
<Key>sample1.txt</Key>
</Object>
<Object>
<Key>sample2.txt</Key>
</Object>
</Delete>
响应示例
HTTP/1.1 200 OK
x-amz-request-id: 39b231ac529a49594cbfb2c1b6c3c5cb8a8c9580828486888a
Date: Mon, 11 Apr 2011 20:34:56 GMT
Server: CTYUN
Content-Length: 251
<?xml version="1.0" encoding="UTF-8"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Deleted>
<Key>sample1.txt</Key>
</Deleted>
<Error>
<Key>sample2.txt</Key>
<Code>AccessDenied</Code>
<Message>AccessDenied</Message>
</Error>
</DeleteResult>