Vaciado de un bucket de uso general
Puede vaciar el contenido de un bucket de uso general mediante la consola de Amazon S3, los SDK de AWS o AWS Command Line Interface (AWS CLI). Cuando vacía un bucket de uso general, elimina todos los objetos, pero conserva el bucket. Una vez que lo hace, no se puede deshacer la acción. Es posible que se eliminen los objetos agregados al bucket mientras la acción de vaciado del bucket esté en curso. Todos los objetos (incluidas todas las versiones de objetos y los marcadores de eliminación) del bucket se deben eliminar antes de poder eliminar el propio bucket.
Cuando se vacía un bucket de uso general que tiene habilitado o suspendido el control de versiones de S3, todas las versiones de todos los objetos del bucket se eliminarán. Para obtener más información, consulte Trabajar con objetos en un bucket con control de versiones habilitado.
Al vaciar el bucket, le recomendamos que también elimine todas las cargas multiparte incompletas. Puede utilizar las cargas multiparte para cargar objetos muy grandes (hasta 5 TB) como un conjunto de piezas para mejorar el rendimiento y obtener una recuperación más rápida de los problemas de red. En los casos en que el proceso de carga multiparte no finaliza, las partes incompletas permanecen en el bucket (en un estado inutilizable). Estas partes incompletas generan gastos de almacenamiento hasta que finalice el proceso de carga o hasta que se eliminen las partes incompletas. Para obtener más información, consulte Carga y copia de objetos con la carga multiparte en Amazon S3.
Como práctica recomendada, recomendamos configurar las reglas del ciclo de vida para que venzan los objetos y las cargas multiparte incompletas que tengan una antigüedad superior a un número específico de días. Cuando cree la regla de ciclo de vida para hacer que venzan las cargas multiparte incompletas, le recomendamos 7 días como buen punto de partida. Para obtener más información, consulte Establecimiento de una configuración de S3 Lifecycle en un bucket.
La caducidad del ciclo de vida es un proceso asincrónico, por lo que la regla puede tardar algunos días en ejecutarse antes de que el bucket se quede vacío. Tras la primera vez que Amazon S3 ejecuta la regla, todos los objetos que cumplen los requisitos de caducidad se marcan para su eliminación. Se le dejará de cobrar por los objetos que estén marcados para ser eliminados. Para obtener más información, consulte How do I empty an Amazon S3 bucket using a lifecycle configuration rule?
Puede utilizar la consola de Amazon S3 para vaciar un bucket de uso general, lo que elimina todos los objetos del bucket sin eliminar el bucket.
Para vaciar un bucket de S3
Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En el panel de navegación izquierdo, elija Buckets de uso general.
-
En la lista de buckets, seleccione la opción junto al nombre del bucket que desea vaciar y, a continuación, elija Vaciar.
-
En la página Empty bucket (Vaciar bucket), confirme que desea vaciar el bucket introduciendo el nombre del bucket en el campo de texto y, a continuación, elija Empty (Vaciar).
-
Supervise el progreso del proceso de vaciado del bucket en la página Vaciar bucket: estado).
Puede vaciar un bucket de uso general con la AWS CLI solo si el bucket no tiene habilitado el control de versiones. Si el control de versiones no está habilitado, puede usar el comando rm
(eliminar) de AWS CLI con el parámetro --recursive
para vaciar un bucket (o eliminar un subconjunto de objetos con un prefijo de nombre de clave específico).
El siguiente comando rm
elimina objetos con el prefijo de nombre de clave doc
, por ejemplo, doc/doc1
y doc/doc2
.
$
aws s3 rm s3://bucket-name/doc --recursive
Use el siguiente comando para eliminar todos los objetos sin especificar ningún prefijo.
$
aws s3 rm s3://bucket-name --recursive
Para obtener más información, consulte Uso de comandos de S3 de alto nivel con la AWS CLI en la Guía del usuario de AWS Command Line Interface.
nota
No puede eliminar objetos de un bucket que tenga habilitado el control de versiones. Amazon S3 agregará un marcador de eliminación al eliminar un objeto, que es lo que hace este comando. Para obtener más información sobre el control de versiones del bucket de S3, consulte Retención de varias versiones de objetos con Control de versiones de S3.
Puede usar los SDK de AWS para vaciar un bucket de uso general o eliminar un subconjunto de objetos con un prefijo de nombre de clave específico.
Si desea ver un ejemplo de cómo vaciar un bucket utilizando AWS SDK para Java, consulte Eliminación de un bucket de uso general. Con este código eliminará todos los objetos, independientemente de si el bucket tiene habilitado el control de versiones, y después se eliminará el bucket. Si quiere limitarse a vaciar el bucket, asegúrese de eliminar la instrucción que provoca la eliminación del bucket.
Para obtener más información acerca del uso de otros SDK de AWS, consulte Herramientas para Amazon Web Services
Para vaciar un bucket de uso general de gran tamaño, le recomendamos que utilice una regla de configuración del ciclo de vida de S3. La caducidad del ciclo de vida es un proceso asincrónico, por lo que la regla puede tardar algunos días en ejecutarse antes de que el bucket se quede vacío. Tras la primera vez que Amazon S3 ejecuta la regla, todos los objetos que cumplen los requisitos de caducidad se marcan para su eliminación. Se le dejará de cobrar por los objetos que estén marcados para ser eliminados. Para obtener más información, consulte How do I empty an Amazon S3 bucket using a lifecycle configuration rule?
Si utiliza una configuración del ciclo de vida para vaciar el bucket, la configuración debería incluir versiones actuales, versiones no actuales, marcadores de eliminación y cargas multiparte incompletas.
Puede agregar reglas de configuración del ciclo de vida para provocar el vencimiento de todos o de un subconjunto de los objetos que tenga un prefijo de nombre de clave específico. Por ejemplo, para eliminar todos los objetos de un bucket, puede configurar una regla del ciclo de vida que haga que venzan los objetos un día después de su creación.
Amazon S3 admite una regla de ciclo de vida del bucket que puede utilizar para detener las cargas multiparte que no se completan dentro de un número especificado de días después de iniciarse. Le recomendamos que configure esta regla de ciclo de vida para minimizar los costos de almacenamiento. Para obtener más información, consulte Configuración de una política de ciclo de vida del bucket para eliminar cargas multiparte incompletas.
Para obtener más información acerca del uso de una configuración de ciclo de vida para vaciar un bucket, consulte Establecimiento de una configuración de S3 Lifecycle en un bucket y Vencimiento de objetos.
Vaciado de un bucket de uso general con AWS CloudTrail configurado
AWS CloudTrail rastrea los eventos de datos en el nivel de objeto en un bucket de uso general de Amazon S3, como la eliminación de objetos. Si utiliza un bucket de uso general como destino para registrar los eventos de CloudTrail y está eliminando objetos de ese mismo bucket, es posible que esté creando nuevos objetos mientras vacía el bucket. Para evitarlo, detenga los registros de seguimiento AWS CloudTrail. Para obtener más información sobre cómo detener los registros de seguimiento de CloudTrail de los eventos de registro, consulte Desactivar el registro de un registro de seguimiento en la Guía del usuario de AWS CloudTrail.
Otra alternativa para evitar que los registros de seguimiento de CloudTrail se agreguen al bucket es agregar una instrucción de denegación s3:PutObject
a la política del bucket. Si desea almacenar objetos nuevos en el bucket más adelante, tendrá que eliminar esta instrucción s3:PutObject
de denegación. Para obtener más información, consulte Operaciones con objetos y Elementos de la política JSON de IAM: Efecto en la Guía del usuario de IAM.