批量删除

要确定您的对象存储系统是否支持此功能,请参阅 可发现性。或者,请咨询您的服务提供商。

使用批量删除,您可以一次请求删除最多 10,000 个对象或容器(可配置)。

批量删除请求

要执行批量删除操作,请将 bulk-delete 查询参数添加到包含对象和容器的路径中,该路径的请求方法为 POSTDELETE

注意

为了向后兼容,支持 DELETE 操作。

路径是帐户,例如 /v1/12345678912345,其中包含对象和容器。

POSTDELETE 操作的请求主体中,列出要删除的对象或容器。使用换行符分隔每个名称。列表中最多可以包含 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/xmltext/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>