Trabajar con marcadores de eliminación
Un marcador de eliminación en Amazon S3 es un marcador de posición (o marcador) para un objeto con control de versiones que se ha especificado en una solicitud DELETE
simple. Una solicitud DELETE
simple es una solicitud que no especifica un ID de versión. Dado que el objeto estaba en un bucket con control de versiones habilitado, el objeto no se elimina. Sin embargo, el marcador de eliminación hace que Amazon S3 se comporte como si el objeto se hubiese eliminado. Puede utilizar una llamada DELETE
a la API de Amazon S3 en un marcador de eliminación. Para ello, deberá realizar la solicitud DELETE
mediante un usuario o rol de AWS Identity and Access Management (IAM) que tenga los permisos apropiados.
Un marcador de eliminación tiene un nombre de clave (o clave) y un ID de versión al igual que cualquier otro objeto. Sin embargo, un marcador de eliminación se diferencia de otros objetos en los siguientes aspectos:
-
Un marcador de eliminación no tiene datos asociados.
-
Un marcador de eliminación no está asociado a un valor de lista de control de acceso (ACL).
-
Si emite una solicitud
GET
para eliminar un marcador, la solicitudGET
no recupera nada porque el marcador de eliminación no contiene datos. En concreto, si su solicitudGET
no especifica unversionId
, aparece un error 404 (no encontrado).
Los marcadores de eliminación acumulan un cargo mínimo por almacenamiento en Amazon S3. El tamaño de almacenamiento de un marcador de eliminación es igual al tamaño del nombre de clave del marcador de eliminación. Un nombre de clave es una secuencia de caracteres Unicode. La codificación UTF-8 del nombre de la clave añade entre 1 y 4 bytes de almacenamiento al bucket para cada carácter del nombre. Los marcadores de eliminación se almacenan en la clase de almacenamiento S3 Standard.
Si desea saber cuántos marcadores de eliminación tiene y en qué clase de almacenamiento están almacenados, puede usar la Lente de almacenamiento de Amazon S3. Para obtener más información, consulte Evaluación de la actividad y el uso de almacenamiento con Amazon S3 Storage Lens y Glosario de métricas de Amazon S3 Storage Lens.
Para obtener más información sobre nombres de clave, consulte Denominación de objetos de Amazon S3. Para obtener información acerca de cómo eliminar marcadores de eliminación, consulte Gestión de marcadores de eliminación.
Solo Amazon S3 puede crear un marcador de eliminación, y lo hace cuando envía una solicitud DeleteObject
a un objeto en un bucket con control de versiones habilitado o suspendido. El objeto especificado en la solicitud DELETE
no se elimina realmente. Por el contrario, el marcador de eliminación se convierte en la versión actual del objeto. El nombre de la clave del objeto (o clave) se convierte en la clave del marcador de eliminación.
Cuando obtiene un objeto sin especificar un versionId
en su solicitud, si su versión actual es un marcador de eliminación, Amazon S3 responde con lo siguiente:
-
Un error 404 (No encontrado)
-
Un encabezado de respuesta,
x-amz-delete-marker: true
Cuando obtiene un objeto especificando un versionId
en su solicitud, si la versión especificada es un marcador de eliminación, Amazon S3 responde con lo siguiente:
-
Un error 405 (Método no permitido)
-
Un encabezado de respuesta,
x-amz-delete-marker: true
-
Un encabezado de respuesta,
Last-Modified: timestamp
(solo cuando se utilizan las operaciones de la API HeadObject o GetObject)
El encabezado de respuesta x-amz-delete-marker: true
le indica que el objeto al que se ha obtenido acceso era un marcador de eliminación. Este encabezado de respuesta nunca devuelve false
, porque cuando el valor es false
, la versión actual o especificada del objeto no es un marcador de eliminación.
El encabezado de respuesta Last-Modified
indica la hora de creación de los marcadores de eliminación.
En el siguiente gráfico, se muestra cómo una llamada a la API GetObject
en un objeto cuya versión actual es un marcador de eliminación responde con un error 404 (no encontrado) y en el encabezado de respuesta se incluye x-amz-delete-marker: true
.

Si realiza una llamada GetObject
a un objeto especificando un versionId
en su solicitud y si la versión especificada es un marcador de eliminación, Amazon S3 responde con un error 405 (método no permitido) y los encabezados de respuesta incluyen x-amz-delete-marker: true
y Last-Modified: timestamp
.

Para enumerar todas las versiones de todos los objetos de un bucket, use el subrecurso versions
en una solicitud ListObjectVersions. La siguiente figura muestra que una solicitud ListObjectsV2 o ListObjects no devuelve objetos cuya versión actual sea un marcador de eliminación.
