文档简介:
Delete Multiple Objects
批量删除Object功能支持用一个HTTP请求删除一个bucket中的多个object。如果你知道你想删除的object名字,此功能可以批量删除这些object,而不用发送多个单独的删除请求。
批量删除请求包含一个不超过1000个object的XML列表。在这个xml中,你需要指定要删除的object的名字。对于每个Object,OOS都会返回删除的结果,成功或者失败。注意,如果请求中的object不存在,那么OOS也会返回删除成功。
批量删除功能支持两种格式的响应,全面信息和简明信息。默认情况下,OOS在响应中会显示全面信息,即包含每个object的删除结果。在简明信息模式下,OOS只返回删除出错的object的结果。对于成功删除的object,在响应中将不返回任何信息。
说明:在删除不存在的对象时,也会返回删除成功。
最后,批量删除功能必须使用Content-MD5请求头,OOS使用此头来保证请求体在传输过程中没有被修改。
请求语法
POST /?deleteHTTP/1.1 Host: BucketName.oos-cn.ctyunapi.cn Content-Length: Size Content-MD5: MD5 Authorization: Signature Date: Date
<?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。 类型:String 默认值:无 |
是 |
Content-Length |
请求体的长度,参考RFC2616。 类型:String 默认值:无 |
是 |
请求元素
名称 |
描述 |
是否必须 |
Delete |
包含整个请求的容器。 类型:容器 父节点:无 |
是 |
Quiet |
使用简明信息模式来返回响应,有效值为:true和false,默认为false。 类型:Boolean 父节点:Delete |
否 |
Object |
包含被删除object的容器。 类型:容器 父节点:Delete |
是 |
Key |
被删除object名。 类型:String 父节点:Object |
是 |
响应元素
名称 |
描述 |
DeleteResult |
包含整个响应的容器。 类型:容器 父节点:无 |
Deleted |
成功删除的容器,包含成功删除的object。 类型:容器 父节点:DeleteResult |
Key |
尝试删除的object名。 类型:String 父节点:Deleted,或 Error |
Error |
删除失败的容器,包含删除失败的object信息。 类型:容器 父节点:DeleteResult |
Code |
删除失败的状态码。 类型:String 父节点:Error 值:AccessDenied, InternalError |
Message |
错误的描述。 类型:String 父节点: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: AWS 7799e793ce4624ee7e5a:xQE0diMbLRepdf3YB+FIEXAMPLE= 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: 996c76696e6727732072657175657374 Date: Mon, 1 Nov 2010 20:34:56 GMT Server: CTYUN Content-Length: 251
<?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns="/doc/2006-03-01/"> <Deleted> <Key>sample1.txt</Key> </Deleted> <Error> <Key>sample2.txt</Key> <Code>AccessDenied</Code> <Message>AccessDenied</Message> </Error> </DeleteResult> |