批量删除对象
功能说明
批量删除指定桶中的多个对象。
方法定义
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());
} 
