问题描述
批量删除操作请求体XML中包含待删除Object数量过多。
问题原因
您发起了DeleteMultipleObjects请求,但是单次请求删除的Object数量超出限制。目前该接口单次请求最多支持删除1000个Object。
问题示例
以下DeleteMultipleObjects请求中删除的Object数量超出限制,导致请求报错。
POST /?delete HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length:151
Content-MD5: ohhnqLBJFiKkPSBO1eNaUA==
Authorization: OSS qn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<BatchDelete>
<Quiet>false</Quiet>
<Object>
<Key>1.data</Key>
</Object>
<Object>
<Key>2.data</Key>
</Object>
...(此处省略1000个Object节点)...
<Object>
<Key>1003.jpg</Key>
</Object>
</BatchDelete>
解决方案
确保单次DeleteMultipleObjects请求删除Object数量不超过1000个。
POST /?delete HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length:151
Content-MD5: ohhnqLBJFiKkPSBO1eNaUA==
Authorization: OSS qn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<Delete>
<Quiet>false</Quiet>
<Object>
<Key>multipart.data</Key>
</Object>
<Object>
<Key>test.jpg</Key>
</Object>
<Object>
<Key>demo.jpg</Key>
</Object>
</Delete>
如果您需要删除更多数量的Object,您可以选择以下任意方式进行删除。
多次调用DeleteMultipleObjects接口进行删除。
通过命令行工具ossutil以及图形化管理工具ossbrowser一次最多可删除的文件无个数限制。
如果需要删除的文件数目较多,且删除的文件有一定的规律,例如需要定期删除指定日期之前的文件,指定前缀的文件,又或者需要清空整个Bucket内的所有文件。此时,推荐您配置生命周期规则自动删除文件。生命周期规则配置完成后,OSS会根据规则自动删除指定文件,减少您发送删除请求的次数,以提高删除效率。
相关文档
该文章对您有帮助吗?
- 本页导读 (1)
- 问题描述
- 问题原因
- 问题示例
- 解决方案
- 相关文档