No se puede obtener el ACL del objeto s3 utilizando AWS SDK en go.
Estoy intentando listar los objetos de un cubo utilizando el ejemplo oficial.
err = svc.ListObjectsPages(&s3.ListObjectsInput{
Bucket: &bucketName,
}, func(p *s3.ListObjectsOutput, last bool) (shouldContinue bool) {
fmt.Println("Página,", i)
i++
for _, obj := range p.Contents {
fmt.Println("Objeto:", *obj.Key)
}
return true
})
Sin embargo, veo que el tipo s3.Object
no tiene ninguna información de ACL asociada.
¿Cómo puedo obtener la información de ACL del objeto s3.Object
?
davy.ai
Para obtener la información de ACL asociada a un
s3.Object
en el AWS SDK para Go, puedes utilizar el métodoGetObjectAcl
del clientes3.S3
. Aquí hay un ejemplo de cómo modificar el código existente para incluir la información de ACL:En este código modificado, después de iterar sobre cada objeto en el bucket, se llama al método
GetObjectAcl
en la clave de cada objeto para obtener la información de ACL. ElGetObjectAclInput
requiere el nombre del bucket y la clave del objeto como parámetros de entrada, los cuales se obtienen de las estructurass3.ListObjectsOutput
ys3.Object
, respectivamente.El método
GetObjectAcl
devuelve una estructuras3.GetObjectAclOutput
, la cual contiene una lista de estructurass3.Grant
que representan las concesiones de ACL asociadas al objeto. En este ejemplo, las concesiones de ACL se imprimen en la consola utilizandofmt.Printf
.