Lista todas as versões de objetos em um bucket, incluindo marcadores de exclusão.
Observações de uso
A operação ListObjectVersions (GetBucketVersions) retorna todas as versões de objetos, incluindo marcadores de exclusão. Já a operação ListObjects (GetBucket) retorna apenas as versões atuais, sem os marcadores de exclusão.
Os objetos são retornados em ordem alfabética. As versões de cada objeto aparecem ordenadas por data de criação, da mais recente para a mais antiga.
Se o logging e a consulta de log em tempo real estiverem ativados para o bucket, o campo operation no log gerado será GetBucket.
Cobrado como uma requisição PUT. Consulte Taxas de chamada de operações de API.
Estrutura da requisição
GET /?versions HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Cabeçalhos da requisição
A operação DescribeRegions utiliza apenas cabeçalhos de requisição comuns. Para mais informações, consulte Cabeçalhos de requisição comuns.
Parâmetros da requisição
Use estes parâmetros para filtrar resultados: prefix, key-marker, version-id-marker, delimiter e max-keys.
|
Parameter |
Type |
Required |
Example |
Description |
|
delimiter |
String |
No |
/ |
Caractere usado para agrupar objetos por nome. Se prefix e delimiter forem especificados, a resposta conterá CommonPrefixes. Objetos cujos nomes compartilham a mesma string entre o prefixo e a próxima ocorrência do delimitador são agrupados como uma única entrada CommonPrefixes. Quando o prefixo é um nome de diretório e o delimitador é uma barra (/), apenas os objetos desse diretório são retornados. Nomes de subdiretórios aparecem em CommonPrefixes, mas objetos e diretórios dentro dos subdiretórios não são listados. Padrão: vazio. |
|
key-marker |
String |
Obrigatório se version-id-marker for especificado. |
example |
Retorna objetos em ordem alfabética após este valor. Pode ser usado com version-id-marker. Comprimento máximo: 1.024 bytes. Padrão: vazio. |
|
version-id-marker |
String |
No |
CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1**** |
Retorna versões criadas antes deste marcador para o objeto especificado por key-marker, em ordem decrescente de tempo de criação. Se omitido, os resultados começam a partir da versão mais recente do objeto seguinte em ordem alfabética após key-marker. Padrão: vazio. Valores válidos: IDs de versão. |
|
max-keys |
String |
No |
100 |
Número máximo de objetos a retornar. Se os resultados excederem max-keys, a resposta incluirá Valores válidos: 1 a 999. Valor padrão: 100. |
|
prefix |
String |
No |
fun |
Prefixo que os nomes dos objetos retornados devem conter.
Se o prefixo for definido como um nome de diretório, todos os objetos e subdiretórios nesse diretório serão listados. Padrão: vazio. |
|
encoding-type |
String |
No |
URL |
Tipo de codificação do conteúdo da resposta. Padrão: vazio. Valor válido: URL. Importante
Os valores de delimiter, marker, prefix, NextMarker e Key são codificados em UTF-8. Se algum desses valores contiver caracteres de controle não suportados pelo XML 1.0, especifique encoding-type para codificá-los na resposta. |
Parâmetros da resposta
|
Parameter |
Type |
Example |
Description |
|
ListVersionsResult |
Container |
N/A |
Contêiner para os resultados de ListObjectVersions (GetBucketVersions). Nós filhos: Name, Prefix, Marker, MaxKeys, Delimiter, IsTruncated, NextMarker, Version e DeleteMarker Nós pais: nenhum |
|
CommonPrefixes |
Container |
N/A |
Se delimiter for especificado, objetos cujos nomes compartilham a mesma string entre o prefixo e a próxima ocorrência do delimitador são agrupados como uma única entrada CommonPrefixes. Nós pais: ListVersionsResult |
|
Delimiter |
String |
/ |
Caractere usado para agrupar objetos por nome. Objetos que compartilham a mesma string entre o prefixo e a próxima ocorrência do delimitador são agrupados como uma única entrada CommonPrefixes. Nós pais: ListVersionsResult |
|
EncodingType |
String |
URL |
Tipo de codificação do conteúdo da resposta. Se encoding-type for especificado na requisição, os valores de Delimiter, Marker, Prefix, NextMarker e Key serão codificados. Nós pais: ListVersionsResult |
|
IsTruncated |
String |
true |
Indica se os resultados foram truncados.
Valores válidos: true e false. Nós pais: ListVersionsResult |
|
KeyMarker |
String |
example |
Objeto a partir do qual a listagem começa. Nós pais: ListVersionsResult |
|
VersionIdMarker |
String |
CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1**** |
Versão a partir da qual a operação ListObjectVersions (GetBucketVersions) começa. Usado com KeyMarker. Nós pais: ListVersionsResult |
|
NextKeyMarker |
String |
test |
Incluído quando os resultados são truncados. Use como key-marker na próxima requisição para continuar a listagem. Nós pais: ListVersionsResult |
|
NextVersionIdMarker |
String |
CAEQGBiBgIC_jq7P9xYiIDRiZWJkNjY2Y2Q4NDQ5ZTI5ZGE5ODIxMTIyZThl**** |
Incluído quando os resultados são truncados. Use como version-id-marker na próxima requisição para continuar a listagem. Nós pais: ListVersionsResult |
|
MaxKeys |
String |
1000 |
Número máximo de objetos retornados na resposta. Nós pais: ListVersionsResult |
|
Name |
String |
examplebucket-1250000000 |
Nome do bucket. Nós pais: ListVersionsResult |
|
Prefix |
String |
fun |
Prefixo que deve constar nos nomes dos objetos listados. Nós pais: ListVersionsResult |
|
Version |
Container |
N/A |
Contêiner para versões de objetos, excluindo marcadores de exclusão. Nós pais: ListVersionsResult |
|
DeleteMarker |
Container |
N/A |
Contêiner para marcadores de exclusão. Nós pais: ListVersionsResult |
|
ETag |
String |
250F8A0AE989679A22926A875F0A2**** |
ETag do objeto, usado para identificar seu conteúdo.
Nota
O ETag indica apenas se o conteúdo do objeto foi alterado. Use o hash MD5 para verificar a integridade dos dados. Nós pais: ListVersionsResult.Version |
|
Key |
String |
example |
Nome do objeto. Nós pais: ListVersionsResult.Version e ListVersionsResult.DeleteMarker |
|
LastModified |
Time |
2019-04-09T07:27:28.000Z |
Hora da última modificação do objeto. Nota
Nós pais: ListVersionsResult.Version e ListVersionsResult.DeleteMarker |
|
TransitionTime |
Time |
2024-04-23T07:21:42.000Z |
Momento em que a classe de armazenamento do objeto é alterada para Cold Archive ou Deep Cold Archive com base nas regras de ciclo de vida. Nota
Nós pais: ListVersionsResult.Version e ListVersionsResult.DeleteMarker |
|
VersionId |
String |
CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN**** |
ID da versão do objeto. Nós pais: ListVersionsResult.Version e ListVersionsResult.DeleteMarker |
|
IsLatest |
String |
true |
Indica se esta é a versão atual. Valores válidos:
Nós pais: ListVersionsResult.Version e ListVersionsResult.DeleteMarker |
|
Size |
String |
93731 |
Tamanho do objeto em bytes. Nós pais: ListVersionsResult.Version e ListVersionsResult.DeleteMarker |
|
StorageClass |
String |
Standard |
Classe de armazenamento do objeto. Nós pais: ListVersionsResult.Version e ListVersionsResult.DeleteMarker |
|
Owner |
Container |
N/A |
Contêiner para informações do proprietário do bucket. Nós pais: ListVersionsResult.Version e ListVersionsResult.DeleteMarker |
|
DisplayName |
String |
12345125285864390 |
Nome do proprietário do objeto. Nós pais: ListVersionsResult.Version.Owner e ListVersionsResult.DeleteMarker.Owner |
|
ID |
String |
1234512528586**** |
ID de usuário do proprietário do bucket. Nós pais: ListVersionsResult.Version.Owner e ListVersionsResult.DeleteMarker.Owner |
|
RestoreInfo |
String |
ongoing-request="true" |
Status de restauração do objeto.
|
Para obter mais informações sobre os cabeçalhos de resposta comuns, como x-oss-request-id e Content-Type na resposta de uma requisição ListObjectVersions (GetBucketVersions), consulte Cabeçalhos de resposta comuns.
Exemplos
-
Listar as versões de objetos em um bucket sem versionamento
Exemplos de requisições
GET /?versions HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 07:27:48 GMT Authorization: OSS qn6q**************:77Dv****************Exemplo de resposta de sucesso
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 1262 Connection: keep-alive Date: Thu, Tue, 09 Apr 2019 07:27:48 GMT Server: AliyunOSS x-oss-request-id: 534B371674E88A4D8906**** <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-5T12:03:10.000Z</LastModified> <ETag>5B3C1A2E053D763E1B669CC607C5A0FE1****</ETag> <Size>20</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>1250000000</ID> <DisplayName>1250000000</DisplayName> </Owner> <TransitionTime>2024-04-23T07:21:42.000Z</TransitionTime> </Version> <Version> <Key>example-object-2.jpg</Key> <VersionId/> <IsLatest>true</IsLatest> <LastModified>2019-08-9T12:03:09.000Z</LastModified> <ETag>5B3C1A2E053D763E1B002CC607C5A0FE1****</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-10T12:03:08.000Z</LastModified> <ETag>4B3F1A2E053D763E1B002CC607C5AGTRF****</ETag> <Size>20</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>1250000000</ID> <DisplayName>1250000000</DisplayName> </Owner> </Version> </ListVersionsResult> -
Listar as versões de objetos em um bucket com versionamento ativado
O bucket oss-example contém dois objetos: example com três versões (111222, 000123 como marcador de exclusão e 222333, em ordem decrescente de criação), e pic.jpg com uma versão (232323).
Se você definir key-marker como example e version-id-marker como 111222, as seguintes três versões serão retornadas em sequência: 000123 de example, 222333 de example e 232323 de pic.jpg.
Exemplos de requisições
GET /?versions&key-marker=example&version-id-marker=CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1**** HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 07:27:48 GMT Authorization: OSS qn6q**************:77Dv****************Exemplos de respostas de sucesso
HTTP/1.1 200 OK x-oss-request-id: 5CAC4974B7AEADE01700**** Date: Tue, 09 Apr 2019 07:27:48 GMT Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <ListVersionsResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Name>oss-example</Name> <Prefix></Prefix> <KeyMarker>example</KeyMarker> <VersionIdMarker>CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****</VersionIdMarker> <MaxKeys>100</MaxKeys> <Delimiter></Delimiter> <IsTruncated>false</IsTruncated> <DeleteMarker> <Key>example</Key> <VersionId>CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****</VersionId> <IsLatest>false</IsLatest> <LastModified>2019-04-09T07:27:28.000Z</LastModified> <Owner> <ID>1234512528586****</ID> <DisplayName>12345125285864390</DisplayName> </Owner> </DeleteMarker> <Version> <Key>example</Key> <VersionId>CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****</VersionId> <IsLatest>false</IsLatest> <LastModified>2019-04-09T07:27:28.000Z</LastModified> <ETag>"250F8A0AE989679A22926A875F0A2****"</ETag> <Type>Normal</Type> <Size>93731</Size> <StorageClass>Standard</StorageClass> <Owner> <ID>1234512528586****</ID> <DisplayName>12345125285864390</DisplayName> </Owner> </Version> <Version> <Key>pic.jpg</Key> <VersionId>CAEQMxiBgMCZov2D0BYiIDY4MDllOTc2YmY5MjQxMzdiOGI3OTlhNTU0ODIx****</VersionId> <IsLatest>true</IsLatest> <LastModified>2019-04-09T07:27:28.000Z</LastModified> <ETag>"3663F7B0B9D3153F884C821E7CF4****"</ETag> <Type>Normal</Type> <Size>574768</Size> <StorageClass>Standard</StorageClass> <Owner> <ID>1234512528586****</ID> <DisplayName>12345125285864390</DisplayName> </Owner> </Version> </ListVersionsResult> -
Objetos Archive e objetos Cold Archive armazenados no bucket solicitado
HTTP/1.1 200 OK x-oss-request-id: 5CAC4974B7AEADE01700**** Date: Tue, 09 Apr 2019 07:27:48 GMT Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <ListVersionsResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Name>oss-example</Name> <Prefix></Prefix> <KeyMarker>example</KeyMarker> <VersionIdMarker>CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****</VersionIdMarker> <MaxKeys>100</MaxKeys> <Delimiter></Delimiter> <IsTruncated>false</IsTruncated> <Version> <Key>exampleobject1.txt</Key> <VersionId>CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****</VersionId> <IsLatest>false</IsLatest> <LastModified>2019-04-09T07:27:28.000Z</LastModified> <Owner> <ID>1234512528586****</ID> <DisplayName>12345125285864390</DisplayName> </Owner> </Version> <Version> <Key>exampleobject2.txt</Key> <VersionId>CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****</VersionId> <IsLatest>false</IsLatest> <LastModified>2019-04-09T07:27:28.000Z</LastModified> <ETag>"250F8A0AE989679A22926A875F0A2****"</ETag> <Type>Normal</Type> <Size>93731</Size> <StorageClass>Standard</StorageClass> <RestoreInfo>ongoing-request="true"</RestoreInfo> <Owner> <ID>1234512528586****</ID> <DisplayName>12345125285864390</DisplayName> </Owner> </Version> <Version> <Key>exampleobject3.txt</Key> <VersionId>CAEQMxiBgMCZov2D0BYiIDY4MDllOTc2YmY5MjQxMzdiOGI3OTlhNTU0ODIx****</VersionId> <IsLatest>true</IsLatest> <LastModified>2019-04-09T07:27:28.000Z</LastModified> <ETag>"3663F7B0B9D3153F884C821E7CF4****"</ETag> <Type>Normal</Type> <Size>574768</Size> <StorageClass>Standard</StorageClass> <RestoreInfo>ongoing-request="false", expiry-date="Thr, 24 Mon 2020 12:40:33 GMT"</RestoreInfo> <Owner> <ID>1234512528586****</ID> <DisplayName>12345125285864390</DisplayName> </Owner> </Version> </ListVersionsResult>
SDKs do OSS
Use os seguintes SDKs do OSS para chamar esta operação:
ossutil
Para informações sobre o comando do ossutil correspondente à operação ListObjectVersions, consulte list-object-versions.
Códigos de erro
|
Error code |
HTTP status code |
Description |
|
NoSuchBucket |
404 |
O bucket não existe. Verifique se o nome do bucket segue as convenções de nomenclatura. |
|
AccessDenied |
403 |
Apenas o proprietário do bucket ou usuários RAM com a permissão |
|
InvalidArgument |
400 |
|