Listar objetos em um bucket com versionamento habilitado
Esta seção fornece exemplos de como listar versões de objetos de um bucket com versionamento habilitado. O Amazon S3 armazena as informações de versão do objeto no sub-recurso versões associado ao bucket. Para obter mais informações, consulte Opções de configuração do bucket. Para listar os objetos em um bucket do com versionamento habilitado, a permissão ListBucketVersions
é necessária.
Siga estas etapas para usar o console do Amazon S3 para ver as diferentes versões de um objeto.
Para ver várias versões de um objeto
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
Na lista Buckets, escolha o nome do bucket que contém o objeto.
-
Para ver uma lista das versões dos objetos no bucket, escolha a opção Show versions (Mostrar versões).
Para cada versão do objeto, o console exibe um ID de versão exclusivo, a data e a hora em que a versão do objeto foi criada e outras propriedades. (Os objetos armazenados em seu bucket antes da habilitação do versionamento têm um ID de versão null [nulo].)
Para listar os objetos sem as versões, escolha a opção List versions (Listar versões) .
Você também pode visualizar, fazer download e excluir versões do objeto no painel de visão geral do objeto no console. Para obter mais informações, consulte Exibir uma visão geral do objeto no console do Amazon S3.
nota
Para acessar versões de objetos anteriores a 300 versões, use a AWS CLI ou o URL do objeto.
Importante
Você pode cancelar a exclusão de um objeto somente se ele foi excluído como a versão mais recente (atual). Não é possível cancelar a exclusão de uma versão anterior de um objeto que foi excluído. Para obter mais informações, consulte Usando o versionamento em buckets do S3.
Os exemplos nesta seção mostram como recuperar uma listagem de objetos de um bucket com versionamento ativado. Cada solicitação retorna até 1.000 versões, a menos que você especifique um número menor. Se o bucket contiver mais versões que esse limite, envie uma série de solicitações para recuperar a lista de todas as versões. Esse processo de retornar resultados em “páginas” é chamado paginação.
Para mostrar como a paginação funciona, os exemplos limitam cada resposta a duas versões de objeto. Depois de recuperar a primeira página de resultados, cada exemplo verifica se a lista de versões foi truncada. Em caso afirmativo, o exemplo continua a recuperar páginas até que todas as versões tenham sido recuperadas.
nota
Os exemplos a seguir também funcionam com bucket sem versionamento, ou para objetos sem versões individuais. Nesses casos, o Amazon S3 retorna a listagem de objetos com um ID de versão null
.
Para obter informações sobre o uso de outros AWS SDKs, consulte o Centro do Desenvolvedor da AWS
exemplo — Listar todas as versões de objeto em um bucket
Para listar todas as versões de todos os objetos em um bucket, você usa o sub-recurso versions
em uma solicitação GET Bucket
. O Amazon S3 pode recuperar no máximo 1.000 objetos, e cada versão de objeto conta como um objeto completo. Portanto, se um bucket contiver duas chaves (por exemplo, photo.gif
e picture.jpg
) e a primeira chave tiver 990 versões e a segunda chave tiver 400 versões, uma solicitação única recuperará as 990 versões de photo.gif
e apenas as 10 versões mais recentes de picture.jpg
.
O Amazon S3 retorna as versões de objetos na ordem em que foram armazenadas, com as armazenadas mais recentemente sendo retornadas primeiro.
Em uma solicitação GET Bucket
, inclua o sub-recurso versions
.
GET /?versions HTTP/1.1 Host:
bucketName
.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 +0000 Authorization: AWSAKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
exemplo — Recuperar todas as versões de uma chave
Para recuperar um subconjunto de versões de objeto, use os parâmetros de solicitação para GET
Bucket
. Para ter mais informações, consulte GET Bucket.
-
Defina o parâmetro
prefix
como a chave do objeto que você deseja recuperar. -
Envie uma solicitação
GET Bucket
usando o sub-recursoversions
eprefix
.GET /?versions&prefix=objectName HTTP/1.1
exemplo — Recuperar objetos usando um prefixo
O exemplo a seguir recupera objetos cuja chave é ou começa com myObject
.
GET /?versions&prefix=myObject HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
Você pode usar os outros parâmetros de solicitação para recuperar um subconjunto de todas as versões do objeto. Para obter mais informações, consulte GET Bucket na Referência da API do Amazon Simple Storage Service.
exemplo — Recuperar uma listagem de objetos adicionais se a resposta estiver truncada
Se o número de objetos que podem ser retornados em uma solicitação GET
exceder o valor de max-keys
, a resposta conterá <isTruncated>true</isTruncated>
e incluirá a primeira chave (em NextKeyMarker
) e o primeiro ID de versão (em NextVersionIdMarker
) que satisfazem a solicitação, mas que não foram retornados. Você usa esses valores retornados como a posição de início em uma solicitação subsequente para recuperar os objetos adicionais que satisfazem a solicitação GET
.
Use o seguinte processo para recuperar os objetos adicionais que satisfazem a solicitação GET Bucket versions
original de um bucket. Para obter mais informações sobre key-marker
, version-id-marker
, NextKeyMarker
e NextVersionIdMarker
, consulte GET
Bucket na Referência da API do Amazon Simple Storage Service.
A seguir estão as respostas adicionais que atendem à solicitação GET
original:
-
Defina o valor de
key-marker
como a chave retornada emNextKeyMarker
na resposta anterior. -
Defina o valor de
version-id-marker
como o ID de versão retornado emNextVersionIdMarker
na resposta anterior. -
Envie uma solicitação
GET Bucket versions
usandokey-marker
eversion-id-marker
.
exemplo — Recuperar objetos que começam com a chave e o ID de versão especificados
GET /?versions&key-marker=myObject&version-id-marker=298459348571 HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
O comando a seguir retorna os metadados de todas as versões dos objetos em um bucket.
aws s3api list-object-versions --bucket
amzn-s3-demo-bucket1
Para obter mais informações sobre list-object-versions
, consulte list-object-versions na Referência de comandos de AWS CLI.