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.

Regla de ciclo de vida para archivos en el bucket S3.

Tengo una combinación de archivos .pdf y .jpg en un bucket de S3. ¿Es posible agregar una regla de ciclo de vida solo para los archivos .pdf?

Todos los ejemplos que encuentro me indican cómo establecer una regla de ciclo de vida para todo el bucket o una carpeta específica dentro de un bucket, pero no puedo encontrar ejemplos que muestren cómo establecer reglas para una extensión de archivo específica dentro de un bucket.

Estoy utilizando el siguiente código de terraform:

“` resource “aws_s3_bucket” “bucket” {
bucket = "<<bucket_name>>"
acl = "private"

lifecycle_rule {
id = "log"
enabled = true
prefix = "path/"

<pre><code>expiration {
days = 1
}
</code></pre>

}
} “`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según el código de Terraform proporcionado, se establece el lifecycle_rule para un prefijo específico ‘path/’, lo que significa que el ciclo de vida se aplicará a todos los archivos bajo ese prefijo. Para aplicar el ciclo de vida solo a una extensión de archivo específica (en este caso, .pdf), puede utilizar el atributo ‘tags’ de los objetos S3. Puede establecer una etiqueta específica (por ejemplo, “fileType”: “PDF”) para todos los archivos PDF en el bucket, y luego crear una regla de ciclo de vida que solo se aplique a los objetos con esa etiqueta.

    Para lograr esto, puede modificar el código de Terraform existente de la siguiente manera:

    resource "aws_s3_bucket" "bucket" {
      bucket = "<<bucket_name>>"
      acl    = "private"
    
      lifecycle_rule {
        id      = "pdfExpire"
        status = "Enabled"
    
        tags {
          "fileType" = "PDF"
        }
    
        expiration {
          days = 30
        }
      }
    }
    

    Este código modificado crea una regla de ciclo de vida llamada ‘pdfExpire’ que se aplica solo a los objetos S3 con una etiqueta ‘fileType’ que tiene un valor de “PDF”. El vencimiento de los objetos con esta etiqueta se establece en 30 días.

    Tenga en cuenta que esto funcionará para todos los nuevos archivos PDF que se carguen en el bucket S3 después de que se ejecute este código de Terraform. Para aplicar las etiquetas a los archivos PDF existentes en el bucket S3, puede utilizar el recurso “aws_s3_bucket_object” en Terraform para establecer las etiquetas para todos los archivos PDF existentes.

Comments are closed.