que pricing prices precios aws amazon-web-services amazon-s3 boto

amazon web services - pricing - Haz un archivo en s3 público usando python y boto



precios de amazon aws (4)

Ajuste de Boto3 ACL. Buenas preguntas / respuestas aquí.

bucket.Acl().put(ACL=''public-read'') obj.Acl().put(ACL=''public-read'')

El uso de obj.Acl().put... es muy útil al mover o manipular elementos. Especialmente útil si el scripting / procesal.

a través de https://boto3.readthedocs.io/en/latest/guide/migrations3.html#access-controls .

Tengo un pequeño enlace a continuación, y cuando intento acceder aparece un archivo xml que dice "Acceso denegado".

Y tengo que ir a la consola de administración de aws y hacer público este archivo part-0000 para poder acceder a él.

¿Sabes cómo puedo otorgar permisos utilizando boto con python para poder acceder a este enlace sin necesidad de ir a la consola de administración de aws y hacer público el archivo?

downloadLink = ''https://s3.amazonaws.com/myFolder/uploadedfiles/2015423/part-00000''


Esto debería darte una idea:

import boto.s3 conn = boto.s3.connect_to_region(''us-east-1'') # or region of choice bucket = conn.get_bucket(''myFolder'') key = bucket.lookup(''uploadedfiles/2015423/part-00000'') key.set_acl(''public-read'')

En este caso, public-read es una de las políticas de ACL enlatadas admitidas por S3 y permitiría a cualquiera leer el archivo.


Esto parece funcionar con boto 2.42.0 y Python 3

s3 = boto.connect_s3() b = s3.get_bucket(''brianray'') k = Key(b) k.key = new_file_name k.set_contents_from_filename(new_file_name) k.set_acl(''public-read'') k.generate_url(expires_in=0, query_auth=False)


from boto3.s3.transfer import S3Transfer import boto3 # ... # have all the variables populated which are required below client = boto3.client(''s3'', aws_access_key_id=access_key, aws_secret_access_key=secret_key) transfer = S3Transfer(client) transfer.upload_file(filepath, bucket_name, folder_name+"/"+filename) response = client.put_object_acl(ACL=''public-read'', Bucket=bucket_name, Key="%s/%s" % (folder_name, filename))