Mostrar objetos en un bucket con control de versiones habilitado
En esta sección se presenta un ejemplo de cómo listar versiones de un objeto en un bucket con control de versiones habilitado. Amazon S3 almacena la información de versión de un objeto en el subrecurso de versiones asociado con el bucket. Para obtener más información, consulte Opciones de configuración de buckets. Para enumerar los objetos de un bucket con control de versiones activado, necesita el permiso ListBucketVersions
.
Siga estos pasos para utilizar la consola de Amazon S3 a fin de ver las diferentes versiones de un objeto.
Para ver múltiples versiones de un objeto
Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En la lista Buckets (Buckets), elija el nombre del bucket que contiene el objeto.
-
Para ver una lista de las versiones de los objetos en el bucket, elija el modificador Show versions (Mostrar versiones).
Para cada versión de objeto, la consola muestra un ID de versión único, la fecha y la hora en que se creó la versión del objeto, y otras propiedades. (Los objetos almacenados en un bucket antes de establecer el estado del control de versiones tienen el ID de versión null (nulo)).
Para listar los objetos sin las versiones, elija el modificador List versions (Enumerar versiones) .
También puede ver, descargar y eliminar las versiones de los objetos en el panel de información general de objetos de la consola. Para obtener más información, consulte Visualización de información general sobre objetos en la consola de Amazon S3.
nota
Para acceder a versiones de objetos anteriores a 300 versiones, debe usar la AWS CLI o la URL del objeto.
importante
Solo puede anular la eliminación de un objeto si se ha eliminado en su última versión (la más reciente). No puede anular la eliminación de una versión anterior de un objeto que se haya eliminado. Para obtener más información, consulte Usar el control de versiones en buckets de S3.
Los ejemplos en esta sección muestran cómo recuperar un listado de objetos de un bucket con control de versiones habilitado. Cada solicitud devuelve hasta 1000 versiones, a menos que especifique un número más bajo. Si el bucket tiene más versiones que ese límite, tendrá que enviar varias solicitudes para recuperar la lista de todas las versiones. Este proceso de devolución de resultados en "páginas" se llama paginación.
Para mostrar cómo funciona la paginación, los ejemplos limitan cada respuesta a dos versiones de objetos. Después de recuperar la primera página de resultados, cada ejemplo realiza una comprobación para determinar si se truncó la lista de la versión. Si fue así, el ejemplo continúa recuperando páginas hasta que se hayan recuperado todas las versiones.
nota
El siguiente ejemplo también funciona con un bucket que no tiene habilitado el control de versiones u objetos que no tienen versiones individuales. En esos casos, Amazon S3 devuelve un listado de objetos con un ID de versión null
.
Para obtener información acerca del uso de otros SDK de AWS, consulte el Centro de desarrolladores de AWS
ejemplo — Listar todas las versiones de objetos en un bucket
Para enumerar todas las versiones de todos los objetos de un bucket, use el subrecurso versions
en una solicitud GET Bucket
. Amazon S3 solo puede recuperar un máximo de 1000 objetos, y cada versión del objeto cuenta como un objeto. Por tanto, si un bucket contiene dos claves (por ejemplo, photo.gif
y picture.jpg
), la primera clave tiene 990 versiones y la segunda tiene 400 versiones, una única solicitud recuperaría las 990 versiones de photo.gif
y solo las 10 versiones más recientes de picture.jpg
.
Amazon S3 devuelve las versiones de objetos en el orden en el que se almacenaron y devuelve las almacenadas más recientemente primero.
En una solicitud GET Bucket
, incluya el subrecurso versions
.
GET /?versions HTTP/1.1 Host:
bucketName
.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 +0000 Authorization: AWSAKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
ejemplo — Recuperar todas las versiones de una clave
Para recuperar un subconjunto de las versiones de un objeto, use los parámetros de la solicitud GET
Bucket
Bucket. Para obtener más información, consulte GET Bucket.
-
Establezca el
prefix
parámetro en la clave del objeto que quiera recuperar. -
Envíe una solicitud
GET Bucket
con el subrecursoversions
yprefix
.GET /?versions&prefix=objectName HTTP/1.1
ejemplo — Recuperar objetos mediante un prefijo
En el siguiente ejemplo se recuperan objetos cuya clave es o comienza por 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=
Puede usar los otros parámetros de solicitud para recuperar un subconjunto de todas las versiones del objeto. Para obtener más información, consulte GET Bucket en la Referencia de la API de Amazon Simple Storage Service.
ejemplo — Recuperar un listado de objetos adicionales si la respuesta está truncada
Si el número de objetos que se pueden devolver con una solicitud GET
supera el valor de max-keys
, la respuesta contendrá <isTruncated>true</isTruncated>
e incluirá la primera clave (en NextKeyMarker
) y el primer ID de versión (en NextVersionIdMarker
) que se ajusten a la solicitud, pero no se hayan devuelto. Puede usar esos valores como posición de inicio en una solicitud subsiguiente para recuperar los objetos adicionales que se ajusten a la solicitud GET
.
Puede usar el siguiente proceso para recuperar objetos adicionales que se ajusten a la solicitud GET Bucket versions
original desde un bucket. Para obtener más información sobre key-marker
, version-id-marker
, NextKeyMarker
y NextVersionIdMarker
, consulte GET
Bucket en la Referencia de la API de Amazon Simple Storage Service.
Las siguientes son respuestas adicionales que satisfacen la solicitud GET
original:
-
Establezca el valor de
key-marker
de acuerdo con la clave devuelta enNextKeyMarker
en la respuesta anterior. -
Establezca el valor de
version-id-marker
de acuerdo con el ID de versión devuelto enNextVersionIdMarker
en la respuesta anterior. -
Envíe una solicitud
GET Bucket versions
con el subrecursokey-marker
yversion-id-marker
.
ejemplo — Recuperar objetos que comienzan con una clave y un ID de versión específicos
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=
El siguiente comando devuelve los metadatos de todas las versiones de los objetos de un bucket.
aws s3api list-object-versions --bucket
DOC-EXAMPLE-BUCKET1
Para obtener más información sobre list-object-versions
, consulte list-object-versions en la Referencia de los comandos de AWS CLI.