Comment télécharger un fichier pour le S3 et le rendre public à l'aide de boto3?
Je suis capable de télécharger un fichier image à l'aide de:
s3 = session.resource('s3')
bucket = s3.Bucket(S3_BUCKET)
bucket.upload_file(file, key)
Cependant, je tiens à faire dans le fichier public. J'ai essayé de regarder pour certaines fonctions à définir une ACL pour le fichier, mais semble comme boto3 ont des changements de leur API et supprimé certaines fonctions. Est-il un moyen de le faire dans la dernière version de boto3?
OriginalL'auteur Adi | 2017-01-27
Vous devez vous connecter pour publier un commentaire.
De télécharger et de définir des autorisations de lecture publique en une seule étape, vous pouvez utiliser:
bucket.upload_file(file, key, ExtraArgs={'ACL':'public-read'})
OriginalL'auteur Bill Baker
J'ai été en mesure de le faire à l'aide de objectAcl API:
Pour plus de détails: http://boto3.readthedocs.io/en/latest/reference/services/s3.html#objectacl
boto3.resource('s3').ObjectAcl('bucket_name','object_key').put(ACL='public-read')
OriginalL'auteur Adi
Adi façon œuvres. Toutefois, si vous étiez comme moi, vous pourriez avoir couru dans un accès refusé question. Normalement, c'est causée par la rupture des autorisations de l'utilisateur.
Je l'ai fixée par adjonction, à la
Action
tableau:OriginalL'auteur Rohan Bagchi