Description
The GET Bucket Object versions API is used to retrieve all objects in a bucket and their historical version information. You can filter out part of the objects in the bucket and their historical version information by specifying parameters. The requester of this API needs the read permission for the bucket.
Request
Request Example
GET /?versions HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: GMT Date
Authorization: Auth String
Note:
Authorization: Auth String (For details, see Request Signature).
Request Parameters
| Name | Description | Type | Required |
|---|---|---|---|
| prefix | Prefix used to match object keys, ensuring that a response only includes object keys with the specified prefix. | string | No |
| delimiter | One-character separator used for grouping object keys. Same content from the prefix or from the start (if no prefix is specified) to the first delimiter in all object keys is regarded as a prefix node under CommonPrefixes. The grouped object keys do not appear in the subsequent object list. For specific scenarios and usage, see the examples below. | string | No |
| encoding-type | Encoding method of the return value. An optional value is url, indicating that the returned object key is a URL-encoded (percent-encoded) value. For example, "Converge Cloud" is encoded as %E8%85%BE%E8%AE%AF%E4%BA%91. |
string | No |
| key-marker | Starting object key marker, starting from which (excluding), object version entries are returned in UTF-8 lexicographic order. | string | No |
| version-id-marker | Starting version ID marker, starting from which (excluding), object version entries are returned. | string | No |
| max-keys | The maximum number (up to 1,000) of keys returned in the response. Defaults to 1000. | integer | No |
Request Header
This API only uses common request headers. For details, see Common Request Headers documentation.
Request Body
This API has no request body.
Response
Response Headers
This API only returns the public response header. For details, see Common Response Headers documentation.
Response Body
The query is successful, and application/xml data is returned, including the object version information in the bucket. For response bodies in different scenarios, see the following examples.
<ListVersionsResult>
<Name>string</Name>
<Prefix>string</Prefix>
<KeyMarker>string</KeyMarker>
<VersionIdMarker>string</VersionIdMarker>
<MaxKeys>integer</MaxKeys>
<IsTruncated>boolean</IsTruncated>
<Delimiter>string</Delimiter>
<CommonPrefixes>
<Prefix>string</Prefix>
</CommonPrefixes>
<CommonPrefixes>
<Prefix>string</Prefix>
</CommonPrefixes>
<Version>
<Key>string</Key>
<VersionId>string</VersionId>
<IsLatest>boolean</IsLatest>
<LastModified>date</LastModified>
<ETag>string</ETag>
<Size>integer</Size>
<StorageClass>Enum</StorageClass>
<Owner>
<ID>string</ID>
<DisplayName>string</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>string</Key>
<VersionId>string</VersionId>
<IsLatest>boolean</IsLatest>
<LastModified>date</LastModified>
<Owner>
<ID>string</ID>
<DisplayName>string</DisplayName>
</Owner>
</DeleteMarker>
<DeleteMarker>
<Key>string</Key>
<VersionId>string</VersionId>
<IsLatest>boolean</IsLatest>
<LastModified>date</LastModified>
<Owner>
<ID>string</ID>
<DisplayName>string</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>string</Key>
<VersionId>string</VersionId>
<IsLatest>boolean</IsLatest>
<LastModified>date</LastModified>
<ETag>string</ETag>
<Size>integer</Size>
<StorageClass>Enum</StorageClass>
<Owner>
<ID>string</ID>
<DisplayName>string</DisplayName>
</Owner>
</Version>
</ListVersionsResult>
Specific node descriptions are as follows:
| Node Name (Keyword) | Parent Node | Description | Type |
|---|---|---|---|
| ListVersionsResult | No | Stores the result of GET Bucket Object versions. | Container |
Content of ListVersionsResult:
| Node Name (Keyword) | Parent Node | Description | Type |
|---|---|---|---|
| Name | ListVersionsResult | Name of the bucket, in <BucketName-APPID> format, for example, examplebucket-1250000000. |
string |
| EncodingType | ListVersionsResult | Encoding format, corresponding to the encoding-type parameter in the request. This node is returned only when the encoding-type parameter is carried in the request. | string |
| Prefix | ListVersionsResult | Prefix used to match object keys, corresponding to the prefix parameter in the request. | string |
| KeyMarker | ListVersionsResult | Starting object key marker, starting from which (excluding), object version entries are returned in UTF-8 lexicographic order. It corresponds to the key-marker parameter in the request. | string |
| VersionIdMarker | ListVersionsResult | Starting version ID marker, starting from which (excluding), object version entries are returned. It corresponds to the version-id-marker parameter in the request. | string |
| MaxKeys | ListVersionsResult | Maximum number of entries returned in a single response. It corresponds to the max-keys parameter in the request. | integer |
| Delimiter | ListVersionsResult | Separator. It corresponds to the delimiter parameter in the request, and this node is returned only if the delimiter parameter is carried in the request. | string |
| IsTruncated | ListVersionsResult | Whether the response entries are truncated. It is set to a boolean value, for example, true or false. | boolean |
| NextKeyMarker | ListVersionsResult | This node is returned only if the response entries are truncated (IsTruncated is true). The value of this node is the last object key in the response entries. To continue requesting subsequent entries, use the value of this node as the key-marker parameter for the next request. | string |
| NextVersionIdMarker | ListVersionsResult | This node is returned only if the response entries are truncated (IsTruncated is true). The value of this node is the version ID of the last object in the response entries. To continue requesting subsequent entries, use the value of this node as the version-id-marker parameter for the next request. | string |
| CommonPrefixes | ListVersionsResult | The identical paths between the prefix (or, if no prefix is specified, the beginning of the string) and the first delimiter are grouped and defined as a common prefix. This node will be returned only if the delimiter parameter is specified in the request. | Container |
| Version | ListVersionsResult | Object version entry. | Container |
| DeleteMarker | ListVersionsResult | Object delete marker entry. | Container |
Content of the ListVersionsResult.CommonPrefixes node of the Container type:
| Node Name (Keyword) | Parent Node | Description | Type |
|---|---|---|---|
| Prefix | ListVersionsResult.CommonPrefixes | A single common prefix. | string |
Content of the ListVersionsResult.Version node of the Container type:
| Node Name (Keyword) | Parent Node | Description | Type |
|---|---|---|---|
| Key | ListVersionsResult.Version | Object Key | string |
| VersionId | ListVersionsResult.Version | Version ID of an object. | string |
| IsLatest | ListVersionsResult.Version | Whether the current version is the latest version of the object. | boolean |
| LastModified | ListVersionsResult.Version | Last modification time of the current version, in ISO 8601 format, for example, 2019-05-24T10:56:40Z. | date |
| ETag | ListVersionsResult.Version | Entity tag (ETag) of the object, which is an information tag identifying the content of an object when it is created. It can be used to check whether the content of the object is changed, for example, "8e0b617ca298a564c3331da28dcb50df". This header might not return the MD5 value of the object. It varies depending on the object upload and encryption methods. | string |
| Size | ListVersionsResult.Version | Object size, in bytes. | integer |
| StorageClass | ListVersionsResult.Version | Storage type of an object. For enumerated values, see [Storage Type], for example, STANDARD_IA and ARCHIVE. | Enum |
| Owner | ListVersionsResult.Version | Information about the object owner. | Container |
Content of the ListVersionsResult.Version.Owner node of the Container type:
| Node Name (Keyword) | Parent Node | Description | Type |
|---|---|---|---|
| ID | ListVersionsResult.Version.Owner | App ID of the object owner. | string |
| DisplayName | ListVersionsResult.Version.Owner | Name of the object owner. | string |
Content of the ListVersionsResult.DeleteMarker node of the Container type:
| Node Name (Keyword) | Parent Node | Description | Type |
|---|---|---|---|
| Key | ListVersionsResult.DeleteMarker | Object Key | string |
| VersionId | ListVersionsResult.DeleteMarker | Version ID of the object delete marker. | string |
| IsLatest | ListVersionsResult.DeleteMarker | Whether the object delete marker is the latest version. | boolean |
| LastModified | ListVersionsResult.DeleteMarker | Deletion time of the delete marker, in ISO8601 format, such as 2019-05-24T10:56:40Z. | date |
| Owner | ListVersionsResult.DeleteMarker | Information about the object owner. | Container |
Content of the ListVersionsResult.DeleteMarker.Owner node of the Container type
| Node Name (Keyword) | Parent Node | Description | Type |
|---|---|---|---|
| ID | ListVersionsResult.DeleteMarker.Owner | App ID of the object owner. | string |
| DisplayName | ListVersionsResult.DeleteMarker.Owner | Name of the object owner. | string |
Error Code
This API does not have any special error information. For all error information, see Error Code.
Practical Case
Example 1: Versioning Is Not Enabled
Request
GET /?versions HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Thu, 15 Aug 2019 12:03:09 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&q-sign-time=1565870589;1565877789&q-key-time=1565870589;1565877789&q-header-list=date;host&q-url-param-list=versions&q-signature=1d8fcb8522df7be9fa52d94cd79462f92eb3****
Connection: close
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 1262
Connection: close
Date: Thu, 15 Aug 2019 12:03:10 GMT
x-cos-request-id: NWQ1NTQ5ZmVfYjliYjBiMDlfMmFhNGZfY2Jm****
<ListVersionsResult>
<Name>examplebucket-1250000000</Name>
<Prefix/>
<KeyMarker/>
<VersionIdMarker/>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Version>
<Key>example-object-1.jpg</Key>
<VersionId/>
<IsLatest>true</IsLatest>
<LastModified>2019-08-15T12:03:10.000Z</LastModified>
<ETag>"0f0cd12c48979d1bf3f95255a36cb861"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-2.jpg</Key>
<VersionId/>
<IsLatest>true</IsLatest>
<LastModified>2019-08-15T12:03:09.000Z</LastModified>
<ETag>"51370fc64b79d0d3c7c609635be1c41f"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-3.jpg</Key>
<VersionId/>
<IsLatest>true</IsLatest>
<LastModified>2019-08-15T12:03:08.000Z</LastModified>
<ETag>"b2f1d893c5fde000ee8ea6eca18ed81f"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
</ListVersionsResult>
Example 2: Versioning Is Enabled
Request
GET /?versions HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Thu, 15 Aug 2019 12:03:41 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&q-sign-time=1565870621;1565877821&q-key-time=1565870621;1565877821&q-header-list=date;host&q-url-param-list=versions&q-signature=36400914186e87b3e88cc8049a79da5e3d79****
Connection: close
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 3477
Connection: close
Date: Thu, 15 Aug 2019 12:03:41 GMT
x-cos-request-id: NWQ1NTRhMWRfODhjMjJhMDlfMWNkOF8xZTRm****
<ListVersionsResult>
<Name>examplebucket-1250000000</Name>
<Prefix/>
<KeyMarker/>
<VersionIdMarker/>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Version>
<Key>example-object-1.jpg</Key>
<VersionId>null</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-15T12:03:10.000Z</LastModified>
<ETag>"0f0cd12c48979d1bf3f95255a36cb861"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>example-object-2.jpg</Key>
<VersionId>MTg0NDUxNzgyMDMwODg0NzI0Njc</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-15T12:03:41.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>example-object-2.jpg</Key>
<VersionId>null</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-15T12:03:09.000Z</LastModified>
<ETag>"51370fc64b79d0d3c7c609635be1c41f"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>example-object-3.jpg</Key>
<VersionId>MTg0NDUxNzgyMDMwODg0NzA1NzM</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-15T12:03:41.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>example-object-3.jpg</Key>
<VersionId>MTg0NDUxNzgyMDMwODk5NTUxNzU</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-15T12:03:39.000Z</LastModified>
<ETag>"e5c7403f4ac3ace73477eb8b1fd183f7"</ETag>
<Size>30</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-3.jpg</Key>
<VersionId>null</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-15T12:03:08.000Z</LastModified>
<ETag>"b2f1d893c5fde000ee8ea6eca18ed81f"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-4.jpg</Key>
<VersionId>MTg0NDUxNzgyMDMwODg4OTI0MDc</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-15T12:03:41.000Z</LastModified>
<ETag>"c5c4d52f90ec328890953bbe4ae08230"</ETag>
<Size>30</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-4.jpg</Key>
<VersionId>MTg0NDUxNzgyMDMwODkyMTg2NjI</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-15T12:03:40.000Z</LastModified>
<ETag>"e9ec8bcb980d2e4d8526c346eb3b2585"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-5.jpg</Key>
<VersionId>MTg0NDUxNzgyMDMwODk4NTkzMzM</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-15T12:03:39.000Z</LastModified>
<ETag>"201669a14bdf051d8a9d6f9828d3f4c4"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
</ListVersionsResult>
Example 3: The delimiter Parameter Is Carried (Listing Objects and Subdirectories Under the Root Directory)
Request
GET /?versions&delimiter=%2F HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Fri, 16 Aug 2019 10:45:53 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&q-sign-time=1565952353;1565959553&q-key-time=1565952353;1565959553&q-header-list=date;host&q-url-param-list=delimiter;versions&q-signature=c3130139bcac870247d1a070dbc8ee1c7ad5****
Connection: close
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 2529
Connection: close
Date: Fri, 16 Aug 2019 10:45:53 GMT
x-cos-request-id: NWQ1Njg5NjFfNjFiMDJhMDlfMWE5ZV8yMDY4****
<ListVersionsResult>
<Name>examplebucket-1250000000</Name>
<Prefix/>
<KeyMarker/>
<VersionIdMarker/>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Delimiter>/</Delimiter>
<CommonPrefixes>
<Prefix>example-folder-1/</Prefix>
</CommonPrefixes>
<CommonPrefixes>
<Prefix>example-folder-2/</Prefix>
</CommonPrefixes>
<Version>
<Key>example-object-1.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNTU3NTk1Mjg</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-16T10:45:53.000Z</LastModified>
<ETag>"5d1143df07a17b23320d0da161e2819e"</ETag>
<Size>30</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>example-object-1.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNjE1OTcxMzM</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-16T10:45:47.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>example-object-1.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNjYzNzU0MjE</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-16T10:45:43.000Z</LastModified>
<ETag>"0f0cd12c48979d1bf3f95255a36cb861"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>example-object-2.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNTYzMDY3NzY</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-16T10:45:53.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>example-object-2.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNjI5OTc5OTU</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-16T10:45:46.000Z</LastModified>
<ETag>"574c289a7906c7d8fecef028216afeca"</ETag>
<Size>30</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-2.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNjgyODc1OTY</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-16T10:45:41.000Z</LastModified>
<ETag>"51370fc64b79d0d3c7c609635be1c41f"</ETag>
<Size>20</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
</ListVersionsResult>
Example 4: The prefix and delimiter Parameters Are Carried (Listing Objects and Subdirectories Under the Root Directory)
Request
GET /?versions&prefix=example-folder-1%2F&delimiter=%2F HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Fri, 16 Aug 2019 10:45:53 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&q-sign-time=1565952353;1565959553&q-key-time=1565952353;1565959553&q-header-list=date;host&q-url-param-list=delimiter;prefix;versions&q-signature=6d7b99a4b379b5fefb8b903ee491bae63590****
Connection: close
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 2682
Connection: close
Date: Fri, 16 Aug 2019 10:45:53 GMT
x-cos-request-id: NWQ1Njg5NjFfMzdiMDJhMDlfODA1NV8yMDI2****
<ListVersionsResult>
<Name>examplebucket-1250000000</Name>
<Prefix>example-folder-1/</Prefix>
<KeyMarker/>
<VersionIdMarker/>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Delimiter>/</Delimiter>
<CommonPrefixes>
<Prefix>example-folder-1/sub-folder-1/</Prefix>
</CommonPrefixes>
<CommonPrefixes>
<Prefix>example-folder-1/sub-folder-2/</Prefix>
</CommonPrefixes>
<Version>
<Key>example-folder-1/example-object-1.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNTY0MzYyNzE</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-16T10:45:53.000Z</LastModified>
<ETag>"1a54e134fda29e15d225cd226c4b49a3"</ETag>
<Size>47</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>example-folder-1/example-object-1.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNjE2MTE1NTI</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-16T10:45:47.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>example-folder-1/example-object-1.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNjcwNjI2MTU</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-16T10:45:42.000Z</LastModified>
<ETag>"f173c1199e3d3b53dd91223cae16fb42"</ETag>
<Size>37</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>example-folder-1/example-object-2.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNTYyOTQ1MDY</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-16T10:45:53.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>example-folder-1/example-object-2.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNjI3NTcyNzU</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-16T10:45:46.000Z</LastModified>
<ETag>"f43741c189c2142b257767bed5b4ce3a"</ETag>
<Size>47</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-folder-1/example-object-2.jpg</Key>
<VersionId>MTg0NDUxNzgxMjEzNjgwNjgwNDk</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-16T10:45:41.000Z</LastModified>
<ETag>"c9d28698978bb6fef6c1ed1c439a17d3"</ETag>
<Size>37</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
</ListVersionsResult>
Example 5: Obtaining the First Page When Pagination Is Required
Request
GET /?versions HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Fri, 23 Aug 2019 11:31:31 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&q-sign-time=1566559891;1566567091&q-key-time=1566559891;1566567091&q-header-list=date;host&q-url-param-list=versions&q-signature=2b146233465c2164c60e0e0b2385f5386a61****
Connection: close
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 372125
Connection: close
Date: Fri, 23 Aug 2019 11:31:32 GMT
x-cos-request-id: NWQ1ZmNlOTRfMTljMDJhMDlfNTg5OV8yZWYz****
<ListVersionsResult>
<Name>examplebucket-1250000000</Name>
<Prefix/>
<KeyMarker/>
<VersionIdMarker/>
<MaxKeys>1000</MaxKeys>
<IsTruncated>true</IsTruncated>
<NextKeyMarker>example-object-0135.jpg</NextKeyMarker>
<NextVersionIdMarker>MTg0NDUxNzc1MTM4MjM0ODYyNjQ</NextVersionIdMarker>
<Version>
<Key>example-object-0001.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4Mjg1NzI5Mjc</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-23T11:31:20.000Z</LastModified>
<ETag>"3dd9c0ec8b6669abec786e52b64e0497"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>example-object-0002.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjY5NDY2MzQ</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-23T11:31:22.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>example-object-0002.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjgzMDg3OTE</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:21.000Z</LastModified>
<ETag>"626f60ee8f3eb987342554379d63259f"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
...
<DeleteMarker>
<Key>example-object-0004.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjcwNjg2Mzc</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:22.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
...
<DeleteMarker>
<Key>example-object-0135.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjA2NTk1MTc</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:28.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
...
<Version>
<Key>example-object-0135.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjM0ODYyNjQ</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:26.000Z</LastModified>
<ETag>"56d3a714c81ba76baa6a0004126a2718"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
</ListVersionsResult>
Example 6: Obtaining Subsequent Pages When Pagination Is Required (Using the key-marker and version-id-marker Request Parameters)
Request
GET /?versions&key-marker=example-object-0135.jpg&version-id-marker=MTg0NDUxNzc1MTM4MjM0ODYyNjQ HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Fri, 23 Aug 2019 11:32:56 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&q-sign-time=1566559976;1566567176&q-key-time=1566559976;1566567176&q-header-list=date;host&q-url-param-list=key-marker;version-id-marker;versions&q-signature=5b0787a354752f3161c75d014b75d9f2bd68****
Connection: close
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 8358
Connection: close
Date: Fri, 23 Aug 2019 11:32:56 GMT
x-cos-request-id: NWQ1ZmNlZThfNjFiMDJhMDlfYTgwOF8yZjIw****
<ListVersionsResult>
<Name>examplebucket-1250000000</Name>
<Prefix/>
<KeyMarker>example-object-0135.jpg</KeyMarker>
<VersionIdMarker>MTg0NDUxNzc1MTM4MjM0ODYyNjQ</VersionIdMarker>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Version>
<Key>example-object-0135.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjQ4MDkyNjk</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:24.000Z</LastModified>
<ETag>"5dd4f1fb98a2a6d74c8482f2856ece6b"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-0135.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjYwOTQ5MTk</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:23.000Z</LastModified>
<ETag>"91e59eed612971f0e00ac483bf5c7329"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
...
<DeleteMarker>
<Key>example-object-0136.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MTg1MjA4MDA</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-23T11:31:31.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
...
<DeleteMarker>
<Key>example-object-0136.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjA2OTA5MDg</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:28.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
...
<DeleteMarker>
<Key>example-object-0137.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjA2OTQ0MzA</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:28.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
...
<Version>
<Key>example-object-0137.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4Mjc1MjQ3OTY</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:22.000Z</LastModified>
<ETag>"9022b9bf1b1503902d46cbe976c94eea"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
</ListVersionsResult>
Example 7: Specifying the Starting Object Using key-marker
Request
GET /?versions&key-marker=example-object-0135.jpg HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Fri, 23 Aug 2019 11:32:56 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&q-sign-time=1566559976;1566567176&q-key-time=1566559976;1566567176&q-header-list=date;host&q-url-param-list=key-marker;versions&q-signature=8b601589aae7ffdb2211694dde4ad73c9634****
Connection: close
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 7111
Connection: close
Date: Fri, 23 Aug 2019 11:32:56 GMT
x-cos-request-id: NWQ1ZmNlZThfNjFiMDJhMDlfYTgwY18yZjRi****
<ListVersionsResult>
<Name>examplebucket-1250000000</Name>
<Prefix/>
<KeyMarker>example-object-0135.jpg</KeyMarker>
<VersionIdMarker/>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<DeleteMarker>
<Key>example-object-0136.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MTg1MjA4MDA</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2019-08-23T11:31:31.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
<Version>
<Key>example-object-0136.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MTg5NjQzNDQ</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:30.000Z</LastModified>
<ETag>"20f730cd4cab72c0edcbf37c40f9dabe"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<Version>
<Key>example-object-0136.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MTk3MDAwMDY</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:29.000Z</LastModified>
<ETag>"339baa9b8d4450e71fc268aaa5fa250e"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
<DeleteMarker>
<Key>example-object-0136.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjA2OTA5MDg</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:28.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
...
<DeleteMarker>
<Key>example-object-0137.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4MjA2OTQ0MzA</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:28.000Z</LastModified>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</DeleteMarker>
...
<Version>
<Key>example-object-0137.jpg</Key>
<VersionId>MTg0NDUxNzc1MTM4Mjc1MjQ3OTY</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2019-08-23T11:31:22.000Z</LastModified>
<ETag>"9022b9bf1b1503902d46cbe976c94eea"</ETag>
<Size>36</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>1250000000</ID>
<DisplayName>1250000000</DisplayName>
</Owner>
</Version>
</ListVersionsResult>