更新时间:2025-12-04 GMT+08:00
分享

批量删除对象

功能说明

批量删除指定桶中的多个对象。

方法定义

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());
}

相关文档