La respuesta aceptada funciona bien - parece establecer ACL de forma recursiva en un camino s3 dado también. Sin embargo, esto también se puede hacer más fácilmente con una herramienta de terceros llamada s3cmd: la usamos mucho en mi empresa y parece ser bastante popular dentro de la comunidad de AWS.
Por ejemplo, supongamos que tiene este tipo de estructura de bucket y dir s3: s3://mybucket.com/topleveldir/scripts/bootstrap/tmp/
. Supongamos ahora que ha marcado todo el «directorio» scripts
como público utilizando la consola de Amazon S3.
Ahora para hacer todo el scripts
"árbol de directorios" de forma recursiva (es decir, incluyendo los subdirectorios y sus archivos) privada de nuevo:
s3cmd setacl --acl-private --recursive s3://mybucket.com/topleveldir/scripts/
También es fácil hacer la scripts
"árbol de directorios" de forma recursiva pública de nuevo si que desee:
s3cmd setacl --acl-public --recursive s3://mybucket.com/topleveldir/scripts/
también puede optar por establecer el permiso/ACL sólo en un "directorio" s3 dado (es decir, no de forma recursiva) por la simple emisión --recursive
en los comandos anteriores.
Para s3cmd
a trabajar, primero tiene que proporcionar el acceso de AWS y claves secretas a través de s3cmd s3cmd --configure
(ver http://s3tools.org/s3cmd para más detalles).
usted puede hacer esto witin la consola de gestión o por API programática – ascobol
Que es lo que pensé, pero parece que no puedo encontrar la opción dentro de la consola. Parece ridículo tener que usar una API para hacer algo tan aparentemente importante. – GoodGets
De hecho, la consola solo le permite eliminar el archivo de concesión en un archivo. Vea mi respuesta detallada de cómo hacer esto en Python. – ascobol