Cómo recuperar o copiar objetos en función de metadatos con lecturas condicionales
Con las lecturas condicionales, puede agregar un encabezado adicional a la solicitud de lectura para agregar condiciones previas a la operación de S3. Si no se cumplen estas condiciones previas, la solicitud de lectura producirá un error.
Puede utilizar lecturas condicionales en solicitudes GET
, HEAD
y COPY
para devolver solo un objeto en función de sus metadatos.
Cuando carga un objeto, Amazon S3 crea metadatos controlados por el sistema que solo S3 puede modificar. Las etiquetas de entidad (ETags) y última modificación son ejemplos de metadatos controlados por el sistema. La ETag de un objeto es una cadena que representa una versión específica de un objeto. La fecha de última modificación son los metadatos que representan la fecha de creación de un objeto o la última fecha de modificación, si esta última fecha es posterior a la primera.
Con las lecturas condicionales, puede devolver un objeto en función de la ETag o de la fecha de última modificación de un objeto. Puede especificar un valor de ETag con la solicitud y devolver el objeto solo si el valor de ETag coincide. Esto podría garantizar que solo devuelva o copie una versión específica de un objeto. Puede especificar un valor de última modificación en la solicitud de lectura y devolver un objeto solo si ese objeto se ha modificado desde la fecha que proporcione.
API de compatibles
Las siguientes API de S3 admiten el uso de lecturas condicionales:
Puede usar los siguientes encabezados para devolver un objeto que dependa de la etiqueta de entidad (ETag) o de la fecha de la última modificación. Para obtener más información acerca de los metadatos de objetos, como ETag y última modificación, consulte Metadatos de objetos definidos por el sistema.
GetObject
-
If-Match
: Devuelva el objeto solo si su ETag coincide con la proporcionada. -
If-Modified-Since
: Devuelva el objeto solo si se ha modificado desde el tiempo especificado. -
If-None-Match
: Devuelva el objeto solo si su ETag no coincide con la proporcionada. -
If-Unmodified-Since
: Devuelva el objeto solo si no se ha modificado desde el tiempo especificado.
Para obtener más información acerca de estos encabezados, los errores devueltos y el orden en que S3 gestiona varios encabezados condicionales en una sola solicitud, consulte GetObject en la referencia de la API de Amazon Simple Storage Service.
HeadObject
-
If-Match
: Devuelva el objeto solo si su ETag coincide con la proporcionada. -
If-Modified-Since
: Devuelva el objeto solo si se ha modificado desde el tiempo especificado. -
If-None-Match
: Devuelva el objeto solo si su ETag no coincide con la proporcionada. -
If-Unmodified-Since
: Devuelva el objeto solo si no se ha modificado desde el tiempo especificado.
Para obtener más información acerca de estos encabezados, los errores devueltos y el orden en que S3 gestiona varios encabezados condicionales en una sola solicitud, consulte HeadObject en la referencia de la API de Amazon Simple Storage Service.
CopyObject
-
x-amz-copy-source-if-match
: Copia el objeto de origen solo si su ETag coincide con la proporcionada. -
x-amz-copy-source-if-modified-since
: Copia el objeto de origen solo si se ha modificado desde el tiempo especificado. -
x-amz-copy-source-if-none-match
: Copia el objeto de origen solo si su ETag no coincide con la proporcionada. -
x-amz-copy-source-if-unmodified-since
: Copia el objeto de origen solo si no se ha modificado desde el tiempo especificado.
Para obtener más información acerca de estos encabezados, los errores devueltos y el orden en que S3 gestiona varios encabezados condicionales en una sola solicitud, consulte CopyObject en la referencia de la API de Amazon Simple Storage Service.