
# 批量删除对象
#### 功能说明
批量删除指定桶中的多个对象。
#### 方法定义
```
1. ObsClient->deleteObjects(array $parameter)
2. ObsClient->deleteObjectsAsync(array $parameter, callable $callback)
```
#### 请求参数
| **字段名**      || **类型**        | **约束** | **说明**                                                             |
|:--|---|:---|:---|:---|
| Bucket       || string        | 必选     | 桶名。                                                                |
| Objects      || indexed array | 必选     | 待删除的对象列表。                                                          |
| - | Key       | string        | 必选     | 待删除对象的名称。                                                          |
| - | VersionId | string        | 可选     | 待删除对象的版本号。                                                         |
| Quiet        || boolean       | 可选     | 批量删除对象的响应方式，false表示详细模式，返回删除成功和删除失败的所有结果；true表示简单模式，只返回删除过程中出错的结果。 |
   
#### 返回结果
| **字段名**                  || **类型**        | **说明**          |
|:--|---|:---|:---|
| HttpStatusCode           || integer       | HTTP状态码。        |
| Reason                   || string        | HTTP文本描述。       |
| RequestId                || string        | OBS服务端返回的请求ID。  |
| Deleteds                 || indexed array | 删除成功的对象列表。      |
| - | Key                   | string        | 删除成功的对象名。       |
| - | VersionId             | string        | 删除成功的对象版本号。     |
| - | DeleteMarker          | boolean       | 标识删除的对象是否是删除标记。 |
| - | DeleteMarkerVersionId | string        | 删除标记的版本号。       |
| Errors                   || indexed array | 删除失败的对象列表。      |
| - | Key                   | string        | 删除失败的对象名。       |
| - | VersionId             | string        | 删除失败的对象版本号。     |
| - | Code                  | string        | 删除失败的错误码。       |
| - | Message               | string        | 删除失败的错误消息。      |
   
#### 代码样例
```
try {
       $resp = $obsClient->deleteObjects ( [ 
              'Bucket' => 'bucketname',
              'Quiet' => false,
              'Objects' => [ 
                     [ 
                           'Key' => 'objectkey1',
                           'VersionId' => null 
                     ],
                     [ 
                           'Key' => 'objectkey2',
                           'VersionId' => null 
                     ] 
              ] 
       ] );
       printf ( "RequestId:%s\n", $resp ['RequestId'] );
       printf ( "Deleteds:\n" );
       foreach ( $resp ['Deleteds'] as $index => $deleted ) {
              printf ( "Deleteds[%d]", $index + 1 );
              printf ( "Key:%s\n", $deleted ['Key'] );
              printf ( "VersionId:%s\n", $deleted ['VersionId'] );
              printf ( "DeleteMarker:%s\n", $deleted ['DeleteMarker'] );
              printf ( "DeleteMarkerVersionId:%s\n", $deleted ['DeleteMarkerVersionId'] );
       }
       printf ( "Errors:\n" );
       foreach ( $resp ['Errors'] as $index => $error ) {
              printf ( "Errors[%d]", $index + 1 );
              printf ( "Key:%s\n", $error ['Key'] );
              printf ( "VersionId:%s\n", $$error ['VersionId'] );
              printf ( "Code:%s\n", $error ['Code'] );
              printf ( "Message:%s\n", $error ['Message'] );
       }
} catch ( Obs\Common\ObsException $obsException ) {
       printf("StatusCode:%s\n", $obsException->getStatusCode());
}
```
