Eliminación de objetos de Amazon S3
Puede eliminar uno o más objetos directamente de Amazon S3 mediante la consola de Amazon S3, los SDK de AWS, AWS Command Line Interface (AWS CLI) o la API de REST. Por ejemplo, si recopila archivos de registro, es recomendable eliminarlos cuando ya no sean necesarios. Puede configurar una regla de S3 Lifecycle para eliminar objetos automáticamente, como archivos de registro.
Para eliminar un objeto, puede utilizar una de las siguientes operaciones de la API:
-
Eliminar un solo objeto: Amazon S3 proporciona la API
DELETE
(DeleteObject
) que puede utilizar para eliminar un objeto en una sola solicitud HTTP. -
Eliminar varios objetos : Amazon S3 proporciona la operación de la API (
DeleteObjects
) de eliminación de varios objetos que puede usar para eliminar hasta 1000 objetos en una sola solicitud HTTP.
Cuando elimina objetos de un bucket que no está habilitado para el control de versiones, solo proporciona el nombre de la clave de objeto. Sin embargo, cuando elimina objetos de un bucket que tiene el control de versiones habilitado, puede proporcionar el ID de versión del objeto para eliminar una versión específica de este.
Prácticas recomendadas que deben tenerse en cuenta antes de eliminar un objeto
Antes de eliminar un objeto, tenga en cuenta las siguientes prácticas recomendadas:
-
Habilite el control de versiones del bucket. Control de versiones de S3 añade protección contra solicitudes de
DeleteObject
simples para evitar eliminaciones accidentales. En el caso de buckets con control de versiones, si elimina la versión actual de un objeto o cuando una solicitud de eliminación no especifica un ID de versión específico, Amazon S3 no elimina el objeto de forma permanente. En su lugar, S3 agrega un marcador de eliminación, lo que emite el comando de eliminación temporal del objeto. A continuación, el marcador de eliminación se convierte entonces en la versión actual (o más reciente) del objeto con un nuevo ID de versión. Para obtener más información, consulte Eliminar versiones de objetos de un bucket con control de versiones habilitado. -
Si desea eliminar una gran cantidad de objetos o desea eliminar objetos mediante programación en función de la fecha de creación del objeto, defina una configuración de S3 Lifecycle en su bucket. Para monitorizar estas eliminaciones, le recomendamos que utilice una notificación de eventos de S3 Lifecycle. Al configurar las notificaciones de S3 Lifecycle, el tipo de evento
s3:LifecycleExpiration:Delete
le notifica cuando se elimina un objeto en un bucket. También le notifica cuando la versión de un objeto se elimina de forma permanente mediante una configuración de S3 Lifecycle. El tipo de eventos3:LifecycleExpiration:DeleteMarkerCreated
le notifica cuando S3 Lifecycle crea un marcador de eliminación. Un marcador de eliminación se crea cuando se elimina la versión actual de un objeto en un bucket con control de versiones. -
Antes de realizar cualquier actualización en la configuración de S3 Lifecycle, confirme que Lifecycle haya completado las acciones en todos los objetos previstos. Para obtener más información, consulte la sección Actualización, desactivación o eliminación de las reglas del ciclo de vida en Configuración de un ciclo de vida en un bucket.
nota
Las reglas de S3 Lifecycle deben aplicarse al subconjunto correcto de objetos para evitar eliminaciones involuntarias. Puede filtrar objetos por prefijos, etiquetas de objetos o tamaños de objetos al crear las reglas de Lifecycle.
-
Plantéese la posibilidad de impedir que los usuarios eliminen o borren objetos del bucket. Para restringir a los usuarios, tendrá que negarles de forma explícita los permisos para las siguientes acciones en sus políticas de bucket de Amazon S3:
-
s3:DeleteObject
,s3:DeleteObjectVersion
(para controlar quién puede eliminar objetos mediante solicitudes de API) -
s3:PutLifecycleConfiguration
(para controlar quién puede agregar reglas de vencimiento de S3 Lifecycle)
-
-
Plantéese la posibilidad de utilizar la replicación de S3 para crear varias copias de sus datos y replicarlas en varias ubicaciones a la vez. Puede elegir tantos buckets de destino como necesite. Además, si se elimina un objeto de forma accidental, seguirá teniendo una copia de los datos.
Eliminación de objetos de un bucket con control de versiones habilitado
Si el bucket tiene el control de versiones habilitado, pueden existir varias versiones del mismo objeto en el bucket. Cuando trabaja con buckets que tienen habilitado el control de versiones, las operaciones de la API de Delete
permiten las siguientes opciones:
-
Especificar una solicitud de eliminación sin versión: especifique solo la clave del objeto y no el ID de versión. En este caso, Amazon S3 crea un marcador de eliminación sobre la versión actual del objeto y devuelve su ID de versión en la respuesta. Esto hace que el objeto desaparezca del bucket. Para obtener información acerca del control de versiones de los objetos y el concepto de marcador de eliminación, consulte Retención de varias versiones de objetos con Control de versiones de S3.
-
Especificar una solicitud de eliminación con control de versiones: especifique la clave y un ID de versión. En este caso, son posibles los siguientes resultados:
-
Si el ID de versión se asigna a una versión de objeto específica, Amazon S3 elimina la versión específica del objeto.
-
Si el ID de versión se asigna al marcador de eliminación de un objeto, Amazon S3 elimina el marcador de eliminación. Cuando se elimine el marcador de eliminación, el objeto vuelve a aparecer en el bucket.
-
Eliminación de objetos de un bucket con control de versiones suspendido
Si el control de versiones del bucket está suspendido, las operaciones de la API de Delete
se comportan de la misma manera para los buckets habilitados para el control de versiones (excepto cuando la versión actual tiene un ID de versión nulo). Para obtener más información, consulte Eliminar objetos de buckets con control de versiones suspendido.
Eliminación de objetos de un bucket sin control de versiones
Si el bucket no tiene control de versiones, puede especificar la clave del objeto en las operaciones de la API de Delete
y Amazon S3 eliminará de forma permanente el objeto. Para evitar la eliminación permanente de un objeto, habilite el control de versiones del bucket.
Eliminar objetos de un bucket habilitado para la MFA
Cuando elimine objetos de un bucket habilitado para la autenticación multifactor (MFA), tenga en cuenta lo siguiente:
-
Si proporciona un token de MFA no válido, la solicitud siempre devuelve un error.
-
Si tiene un bucket habilitado para la MFA y realiza una solicitud de eliminación de objetos con control de versiones (proporciona una clave y un ID de versión del objeto), la solicitud dará error si no proporciona un token de MFA válido. Además, al usar la operación de la API
Delete
de varios objetos en un bucket habilitado para MFA, si alguna de las eliminaciones es una solicitud de eliminación con control de versiones (es decir, especifica una clave y un ID de versión del objeto), se produce un error en toda la solicitud si no proporciona un token de MFA.
Sin embargo, en los siguientes casos, la solicitud se realiza correctamente:
-
Si tiene un bucket habilitado para la MFA y realiza una solicitud de eliminación sin control de versiones (no elimina un objeto con control de versiones), y no proporciona un token de MFA, la eliminación se realiza con éxito.
-
Si tiene una solicitud de eliminación de varios objetos en la que se especifica que solo se deben eliminar objetos sin control de versiones de un bucket habilitado para la MFA, y no proporciona un token de MFA, las eliminaciones se realizan correctamente.
Para obtener información acerca de la eliminación de MFA, consulte Configurar la eliminación de MFA.