批量删除¶
要确定您的对象存储系统是否支持此功能,请参阅 可发现性。或者,请咨询您的服务提供商。
使用批量删除,您可以一次请求删除最多 10,000 个对象或容器(可配置)。
批量删除请求¶
要执行批量删除操作,请将 bulk-delete 查询参数添加到包含对象和容器的路径中,该路径的请求方法为 POST 或 DELETE。
注意
为了向后兼容,支持 DELETE 操作。
路径是帐户,例如 /v1/12345678912345,其中包含对象和容器。
在 POST 或 DELETE 操作的请求主体中,列出要删除的对象或容器。使用换行符分隔每个名称。列表中最多可以包含 10,000 个条目(可配置)。
此外,您必须
使用 UTF-8 编码,然后 URL 编码名称。
要指示一个对象,请按以下格式指定容器和对象名称:
CONTAINER_NAME/OBJECT_NAME。要指示一个容器,请按以下格式指定容器名称:
CONTAINER_NAME。确保容器为空。如果它包含对象,对象存储将无法删除该容器。将
Content-Type请求标头设置为text/plain。
批量删除响应¶
当对象存储处理请求时,它会执行多个子操作。即使所有子操作都失败,操作也会返回 200 状态。批量操作返回一个响应主体,其中包含指示哪些子操作成功以及哪些子操作失败的详细信息。有些子操作可能成功,而另一些子操作可能失败。检查响应主体以确定每个删除子操作的结果。
您可以将 Accept 请求标头设置为以下值之一,以定义响应格式
text/plain以纯文本格式化响应。如果省略
Accept标头,则默认值为text/plain。application/json以 JSON 格式化响应。
application/xml或text/xml以 XML 格式化响应。
响应主体包含以下信息
实际删除的文件数。
未找到对象的数量。
错误。一个对象名称列表以及未能删除的对象的关联错误状态。格式取决于您在
Accept标头中设置的值。
以下批量删除响应采用 application/xml 格式。在此示例中,mycontainer 容器不为空,因此无法删除。
<delete>
<number_deleted>2</number_deleted>
<number_not_found>4</number_not_found>
<errors>
<object>
<name>/v1/12345678912345/mycontainer</name>
<status>409 Conflict</status>
</object>
</errors>
</delete>