批量删除

批量删除

如需查看对象存储系统是否支持该特性,请参考 可发现性. 或者与你的服务提供商确认。

随着批量删除,您可以在一个请求中删除多达10000个对象或容器(可配置)。

批量删除请求

执行批量删除操作,可以在``POST``或``DELETE`` 请求路径添加``bulk-delete`` 查询参数。

注解

“DELETE”操作支持向后兼容。

路径为账户名,如``/v1/12345678912345``, 包含对象和容器。

在“发布”或“删除”操作的请求正文中,列出要删除的对象或容器。每个名称被换行符分割开来。您的列表中可以最多包含10000个项目(可配置)。

另外,你必须:

  • 对名称进行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>
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.