You need to enable JavaScript to run this app.
导航
DeleteMultiObjects
最近更新时间:2024.08.01 20:30:28首次发布时间:2021.10.13 16:14:07

功能描述

此接口用于批量删除桶中的多个对象,每次最多能够删除 1000 条。
在开启版本控制的桶中,在调用 DeleteMultiObjects 接口来批量删除对象时,如果在 Delete 请求中未指定versionId,将插入删除标记。如果指定了versionId,将永久删除该对象的指定版本。
批量删除对象支持的响应方式可以通过quiet进行设置。quietfalse时,是指在返回响应时,不管对象是否删除成功都将删除结果包含在响应里;quiettrue时,是指在返回响应时,只返回删除失败的对象结果,没有返回的认为删除成功。

请求消息样式

POST /?delete HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com 
Date: GMT Date
Authorization: authorization string
Content-MD5: md5 string

{
  "Objects": [{
    "Key": "obj1",
    "VersionId": "string"
  }],
  "Quiet": false
}

请求参数和消息头

该请求的公共请求消息头,请参见公共参数

名称

位置

参数类型

是否必选

示例值

说明

delete

Query

String

-

代表 DeleteMultipleObjects 请求的特殊标识。

Content-MD5

Header

String

dgWRtDmbPCHa/IS1s7XxUg==

将 DeleteMultipleObjects 的请求消息体经过 Base64MD5 加密后得到的字符串的值。

请求元素

名称

参数类型

是否必选

示例值

说明

Objects

Array

-

待删除对象列表根节点。

Key

String

objectName

待删除对象名。父节点为 Objects。

VersionId

String

57AF1A32CECB56721267

待删除对象版本号。父节点为 Objects。

Quiet

Bool

false

批删之后响应模式,取值说明如下:

  • false:删除结果包含在响应体中返回,默认值。
  • true:只返回删除失败的结果。

响应消息头

该请求返回的公共响应消息头,请参见公共参数

响应元素

名称

参数类型

示例值

说明

Deleted

Array

-

成功删除的结果信息列表。

Key

String

obj1

被删除的对象名。

DeleteMarker

Bool

true

标识是否为删除标记。

DeleteMarkerVersionId

String

43D62700044343044833

删除标记对应的版本 ID。

Error

Object

-

删除失败结果列表。

Code

String

AccessDenied

删除失败的错误码。

Message

String

Access Denied

删除失败的错误消息。

请求示例 1

POST /?delete HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com 
Date: Fri, 30 Jul 2021 13:56:19 GMT
Authorization: authorization string
Content-MD5: md5 string

{
  "Objects": [{
    "Key": "obj1"
  },
  {
    "Key": "obj2"
  }],
  "Quiet": false
}

响应示例 1

成功响应示例:

HTTP/1.1 200 OK
Date: Fri, 30 Jul 2021 13:56:19 GMT
Server: TosServer
Content-Type: application/xml
x-tos-id-2: 4fac130bee03002e-a444ed0
x-tos-request-id: 4fac130bee03002e-a444ed0

{
    "Deleted": [
        {
            "Key": "obj2"
        },
        {
            "Key": "obj1"
        }
    ]
}

失败响应示例:

HTTP/1.1 400 Bad Request
Date: Fri, 30 Jul 2021 13:56:52 GMT
Server: TosServer
x-tos-id-2: 4fac130bee240030-a444ed0
x-tos-request-id: 4fac130bee240030-a444ed0

{
    "Code": "BadDigest",
    "RequestId": "4d31430787b94d11b80b348122ff2290-ac1a1791",
    "HostId": "GFdpcBKxovJAtAdAQluzipAXqaRyDTc",
    "Message": "The Content-MD5 you specified did not match what we received."
}

请求示例 2

如果从多版本开启的桶中删除对象,未指定 VersionId,因此为其插入删除标记。

POST /?delete HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com 
Date: Fri, 30 Jul 2021 13:56:19 GMT
Authorization: authorization string
Content-MD5: md5 string

{
  "Objects": [{
    "Key": "obj1"
  }],
  "Quiet": false
}

响应示例 2

开启多版本的桶,未指定 VersionId,对象删除成功响应消息。

HTTP/1.1 200 OK
Date: Fri, 30 Jul 2021 13:56:19 GMT
Server: TosServer
x-tos-id-2: 4fac130bee03002e-a444ed0
x-tos-request-id: 4fac130bee03002e-a444ed0

{
    "Deleted": [
        {
            "Key": "obj1",
            "DeleteMarker": true,
            "DeleteMarkerVersionId": "581CAE50578790BEF9C2"
        }
    ]
}

请求示例 3

如果从多版本开启的桶中删除对象,指定 VersionId 删除。

POST /?delete HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com 
Date: Fri, 30 Jul 2021 13:56:19 GMT
Authorization: authorization string
Content-MD5: md5 string

{
  "Objects": [{
    "Key": "obj1",
    "VersionId": "581CAE10FC6325DEBC3F"
  }],
  "Quiet": false
}

响应示例 3

开启多版本的桶,指定 VersionId,对象删除成功响应消息。

HTTP/1.1 200 OK
Date: Fri, 30 Jul 2021 13:56:19 GMT
Server: TosServer
x-tos-id-2: 4fac130bee03002e-a444ed0
x-tos-request-id: 4fac130bee03002e-a444ed0

{
    "Deleted": [
        {
            "Key": "obj1",
            "DeleteMarker": true,
            "DeleteMarkerVersionId": "581CAE10FC6325DEBC3F"
        }
    ]
}

请求示例4

该示例展示,批量删除对象,返回结果中同时包含成功和失败的对象。在如下示例中,该请求者没有删除对象 obj2 的权限。

POST /?delete HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com 
Date: Fri, 30 Jul 2021 13:56:19 GMT
Authorization: authorization string
Content-MD5: md5 string

{
  "Objects": [{
    "Key": "obj1"
  },
  {
    "Key": "obj2"
  }],
  "Quiet": false
}

响应示例4

响应消息中,Deleted 表示删除成功的对象,Error 表示删除失败的对象。

HTTP/1.1 200 OK
Date: Fri, 30 Jul 2021 13:56:19 GMT
Server: TosServer
x-tos-id-2: 4fac130bee03002e-a444ed0
x-tos-request-id: 4fac130bee03002e-a444ed0

{
    "Deleted": [
        {
            "Key": "obj1"
        }
    ],
    "Error": [
        {
            "Code": "AccessDenied",           
            "Message": "Access Denied",
            "Key": "obj2"
        }
    ]
}