es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

AWS S3 – Estrategia de Eliminación Masiva de Más de 400K Objetos

He estado buscando una estrategia durante unos días que contemple un escenario de eliminación masiva de objetos en S3. Eliminaciones que superen los 400.000 objetos, por ejemplo.

Actualmente tengo un cubo con una estructura similar a la siguiente:

  • …/FOO/${customerID}/../myObject.ext
  • …/ACME/${customerID}/../myObject.ext
  • …/XPTO/${customerID}/../myObject.ext

Es decir, en su mayor parte tengo una segregación de “carpetas” por el customerID.

Estaba buscando alguna solución sincrónica, con baja latencia y con buen rendimiento.

Encontré algunas soluciones que utilizan la política de reglas de ciclo de vida, pero tendría que crear periódicamente políticas de eliminación dinámicas para cada cliente y luego eliminarlas.

El cubo de prueba actualmente tiene deshabilitada la versión (pero puedo habilitarla si es necesario).

Creé una eliminación por lotes utilizando el SDK de Java, sin embargo, hay casos en los que necesito eliminar más de 400.000 objetos. Esto termina siendo extremadamente consumidor de tiempo.

¿Alguien tiene alguna sugerencia?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una opción a considerar es utilizar Amazon S3 Inventory para identificar y eliminar objetos en masa. Puede configurar una configuración de inventario que genere un informe de todos los objetos en su bucket, y luego utilizar este informe para identificar qué objetos deben eliminarse. A partir de ahí, puede utilizar la interfaz de línea de comandos (CLI) o SDK de AWS para eliminar los objetos en masa.

    Otra opción es utilizar las operaciones por lotes de Amazon S3, que le permiten realizar operaciones automatizadas por lotes, como copiar o eliminar objetos. Con las operaciones por lotes de S3, puede especificar los objetos a eliminar mediante un archivo CSV, y luego ejecutar el trabajo de forma asíncrona para eliminar los objetos en masa.

    Si tiene un customerID específico para el que necesita eliminar objetos, también puede considerar el uso de Amazon S3 Access Points para crear un punto de acceso separado para cada cliente. Esto le permitiría administrar fácilmente los permisos y las reglas de ciclo de vida para los objetos de cada cliente, y simplificar el proceso de eliminación de objetos para un cliente específico.

    Vale la pena señalar que habilitar la versión para su bucket podría darle flexibilidad adicional en la gestión de eliminación de objetos. Con la versión habilitada, puede crear reglas de ciclo de vida que eliminen versiones específicas de objetos, o incluso configurar S3 Object Lock para evitar eliminaciones accidentales. Sin embargo, la versión conlleva costos de almacenamiento adicionales, así que asegúrese de evaluar los beneficios frente a los costos para su caso de uso particular.

Comments are closed.