Vaciar un bucket - Amazon Simple Storage Service

Vaciar un bucket

Puede vaciar el contenido de un bucket mediante la consola de Amazon S3, los SDK de AWS o AWS Command Line Interface (AWS CLI). Cuando vacía un bucket, 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 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.

También puede especificar una configuración del ciclo de vida de un bucket para que provoque el vencimiento de objetos de modo que Amazon S3 pueda eliminarlos. Para obtener más información, consulte Configuración de un ciclo de vida en un bucket. Para vaciar un bucket 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? (¿Cómo puedo vaciar un bucket de Amazon S3 mediante una regla de configuración del ciclo de vida?).

Puede utilizar la consola de Amazon S3 para vaciar un bucket, lo que elimina todos los objetos del bucket sin eliminar el bucket.

Para vaciar un bucket de S3
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En la lista Bucket name (Nombre del bucket), seleccione la opción junto al nombre del bucket que desea vaciar y, a continuación, elija Empty (Vaciar).

  3. 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).

  4. Supervise el progreso del proceso de vaciado del bucket en la página Empty bucket: Status (Vaciado del bucket: estado).

Puede vaciar un bucket 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 Usar el control de versiones en buckets de S3.

Puede usar los SDK de AWS para vaciar un bucket 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 for Java, consulte Eliminar un bucket. 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 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? (¿Cómo puedo vaciar un bucket de Amazon S3 mediante una regla de configuración del ciclo de vida?).

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 Configuración de un ciclo de vida en un bucket y Vencimiento de objetos.

Vaciar un bucket con AWS CloudTrail configurado

AWS CloudTrail rastrea los eventos de datos en el nivel de objeto en un bucket de Amazon S3, como la eliminación de objetos. Si utiliza un bucket 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.