J'utilise Python et Boto pour télécharger des images vers S3. Je peux le faire fonctionner si j'ajoute un bénéficiaire de "Tout utilisateur AWS authentifié" et donne à ce concessionnaire la permission de télécharger/supprimer. Cependant, mon impression de la documentation et de plusieurs messages différents sur ce site est que cela permettrait littéralement à tout utilisateur AWS authentifié, pas seulement ceux authentifiés sur mon compte, d'accéder au bucket, ce que je ne veux pas. Cependant, je ne peux pas télécharger des fichiers (403) si je ne donne upload/supprimer l'autorisation au propriétaire du compte, même si j'authentifie comme ceci:S3 Boto 403 Interdit à moins que l'accès soit donné à "tout utilisateur AWS authentifié"
s3 = boto.connect_s3(aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
im = Image.open(BytesIO(urllib.urlopen(self.url).read()))
filename = self.url.split('/')[-1].split('.')[0]
extension = self.url.split('.')[-1]
out_im2 = cStringIO.StringIO()
im.save(out_im2, im.format)
key = bucket.new_key(filename + "." + extension)
key.set_contents_from_string(out_im2.getvalue(), headers={
"Content-Type": extension_contenttype_mapping[extension],
})
key.set_acl('public-read')
self.file = bucket_url + filename + "." + extension
Qu'est-ce que je fais mal dans cette situation?