subir como aws archivos amazon-s3 s3cmd

amazon-s3 - como - aws s3 user permissions



ConcesiĆ³n de acceso de lectura al grupo de usuarios autenticados para un archivo (6)

¿Cómo otorgo acceso de lectura al grupo de usuarios autenticados para un archivo? Estoy usando s3cmd y quiero hacerlo durante la carga, pero me estoy enfocando directamente en cambiar el acl. ¿Qué debería poner para http://acs.amazonaws.com/groups/global/AuthenticatedUsers ? He intentado todas las combinaciones de AuthenticatedUsers posibles.

./s3cmd setacl --acl-grant = leer: http: //acs.amazonaws.com/groups/global/AuthenticatedUsers s3: // BUCKET / FILE

./s3cmd setacl --acl-grant = leer: AuthenticatedUsers s3: // BUCKET / FILE


Aquí hay un comando de ejemplo que configurará la ACL en un objeto S3 para authenticated-read .

aws s3api put-object-acl --acl authenticated-read --bucket mybucket --key myfile.txt

.


Esto es de http://s3tools.org/s3cmd :

Cargue un archivo en el depósito ~ $ s3cmd ponga addressbook.xml s3: //logix.cz-test/addrbook.xml Archivo ''addressbook.xml'' almacenado como s3: //logix.cz-test/addrbook.xml (123456 bytes) ) Nota sobre ACL (listas de control de acceso): un archivo cargado en el depósito de Amazon S3 puede ser privado, que solo usted puede leer, que posee el acceso y las claves secretas, o público, que puede leer cualquier persona. Cada archivo cargado como público no solo es accesible usando s3cmd sino que también tiene una dirección HTTP, URL, que se puede usar como cualquier otra URL y que los navegadores web acceden, por ejemplo.

~ $ s3cmd poner --acl-public --guess-mime-type storage.jpg s3: //logix.cz-test/storage.jpg Archivo ''storage.jpg'' almacenado como s3: //logix.cz-test/ storage.jpg (33045 bytes) La URL pública del objeto es: http://logix.cz-test.s3.amazonaws.com/storage.jpg

Ahora cualquiera puede mostrar el archivo storage.jpg en su navegador. Genial, ¿eh?

intente cambiar el público a autenticado y eso debería funcionar.

ver http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL explica en el lado de Amazon cómo usar sus ACL, supuestamente si usa public en s3cmd - esto se traduciría a public-read en amazon , por lo que debe autenticarse para traducir a lectura autenticada .


Si está dispuesto a usar Python, la biblioteca de boto ofrece toda la funcionalidad para obtener y configurar una ACL; de la documentación del boto S3 :

b.set_acl(''public-read'')

Donde b es un cubo. Por supuesto, en su caso debe cambiar ''public-read'' a ''authenticated-read''. Puede hacer algo similar para las claves (archivos).


Esto no parece ser posible con s3cmd. En cambio, tuve que cambiar a las herramientas de aws cli.

Estas son las instrucciones para instalarlas: http://docs.aws.amazon.com/cli/latest/userguide/installing.html

Es posible configurar el acl para que lo lean los usuarios autenticados durante la carga con el comando:

aws s3 cp <file-to-upload> s3://<bucket>/ --acl authenticated-read

Además de una gran cantidad de otras combinaciones, puede consultar aquí: http://docs.aws.amazon.com/cli/latest/reference/s3/index.html#cli-aws-s3


El siguiente comando funciona para mí con s3cmd versión 1.6.0: s3cmd setacl s3://<bucket>/<file-name> --acl-grant=''read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers'' para un archivo individual.

s3cmd setacl s3://<bucket>/<dir-name> --acl-grant=''read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers'' --recursive para todos los archivos en un directorio.