文档首页/ OBS PHP SDK/ API参考/ 桶相关接口/ 列举桶内多版本对象
更新时间:2022-02-10 GMT+08:00

列举桶内多版本对象

功能说明

列举桶内多版本对象,默认返回最大1000个多版本对象。

方法定义

1. ObsClient->listVersions(array $parameter)
2. ObsClient->listVersionsAsync(array $parameter, callable $callback)

请求参数

字段名

类型

约束

说明

Bucket

string

必选

桶名。

Prefix

string

可选

限定返回的对象名必须带有Prefix前缀。

KeyMarker

string

可选

列举多版本对象的起始位置,返回的对象列表将是对象名按照字典序排序后该参数以后的所有对象。

MaxKeys

integer

可选

列举多版本对象的最大数目,取值范围为1~1000,当超出范围时,按照默认的1000进行处理。

Delimiter

string

可选

用于对对象名进行分组的字符。对于对象名中包含Delimiter的对象,其对象名(如果请求中指定了Prefix,则此处的对象名需要去掉Prefix)中从首字符至第一个Delimiter之间的字符串将作为一个分组并作为CommonPrefix返回。

VersionIdMarker

string

可选

与KeyMarker配合使用,返回的对象列表将是对象名和版本号按照字典序排序后该参数以后的所有对象。

如果VersionIdMarker不是KeyMarker的一个版本号,则该参数无效。

返回结果

字段名

类型

说明

HttpStatusCode

integer

HTTP状态码。

Reason

string

HTTP文本描述。

RequestId

string

OBS服务端返回的请求ID。

Location

string

桶的区域位置。

Name

string

桶名。

Delimiter

string

用于对对象名进行分组的字符,与请求中的该参数对应。

Prefix

string

对象名的前缀,与请求中的该参数对应。

IsTruncated

boolean

表明本次请求是否返回了全部结果,“true”表示没有返回全部结果;“false”表示已返回了全部结果。

KeyMarker

string

列举多版本对象的起始位置,与请求中的该参数对应。

VersionIdMarker

string

表示列举多版本对象的起始位置(VersionId标识),与请求中的该参数对应。

NextKeyMarker

string

下次列举多版本对象请求的起始位置。

NextVersionIdMarker

string

下次列举多版本对象请求的起始位置(VersionId标识),与NextKeyMarker配合使用。

MaxKeys

integer

列举多版本对象的最大数目,与请求中的该参数对应。

Versions

indexed array

多版本对象列表。

  

ETag

string

对象的MD5值。

Size

integer

对象的字节数。

Key

string

对象名。

VersionId

string

对象的版本号。

IsLatest

boolean

标识对象是否是最新的版本,true代表是最新的版本。

LastModified

string

对象最近一次被修改的时间。

Owner

associative array

对象的拥有者。

  

ID

string

对象所有者的DomainId。

  

StorageClass

string

对象的存储类型

DeleteMarkers

indexed array

删除标记列表。

  

Owner

associative array

对象的所有者。

  

ID

string

对象所有者的DomainId。

Key

string

对象名。

VersionId

string

对象的版本号。

IsLatest

boolean

标识对象是否是最新的版本,true代表是最新的版本。

LastModified

string

对象最近一次被修改的时间。

CommonPrefixes

indexed array

当请求中设置了Delimiter分组字符时,返回按Delimiter分组后的对象名称前缀列表。

  

Prefix

string

按Delimiter分组后的对象名称前缀。

代码样例

try{
       $resp = $obsClient -> listVersions([
              'Bucket' => 'bucketname',
              'Prefix' => 'prefix',
              'MaxKeys' => 100
       ]);
       printf("RequestId:%s\n", $resp['RequestId']);
       printf("Versions:\n");
       foreach ($resp['Versions'] as $index => $version){
              printf("Versions[%d]\n", $index + 1);
              printf("ETag:%s\n", $version['ETag']);
              printf("Size:%s\n", $version['Size']);
              printf("StorageClass:%s\n", $version['StorageClass']);
              printf("Key:%s\n", $version['Key']);
              printf("VersionId:%s\n", $version['VersionId']);
              printf("LastModified:%s\n", $version['LastModified']);
              printf("Owner[ID]:%s\n", $version['Owner']['ID']);
       }
       
       printf("DeleteMarkers:\n");
       foreach ($resp['DeleteMarkers'] as $index => $deleteMarker){
              printf("DeleteMarkers[%d]\n", $index + 1);
              printf("Key:%s\n", $deleteMarker['Key']);
              printf("VersionId:%s\n", $deleteMarker['VersionId']);
              printf("IsLatest:%s\n", $deleteMarker['IsLatest']);
              printf("LastModified:%s\n", $deleteMarker['LastModified']);
              printf("Owner[ID]:%s\n", $deleteMarker['Owner']['ID']);
        }
}catch (Obs\Common\ObsException $obsException){
       printf("ExceptionCode:%s\n", $obsException->getExceptionCode());              
       printf("ExceptionMessage:%s\n", $obsException->getExceptionMessage());
}