Ich verwende Python und Boto, um Bilder nach S3 hochzuladen. Ich kann es zum Laufen bringen, wenn ich einen Empfänger von "Any Authenticated AWS User" hinzufüge und diesem die Erlaubnis zum Hochladen/Löschen gebe. Mein Eindruck aus der Dokumentation und verschiedenen Posts auf dieser Website ist jedoch, dass dies buchstäblich jeden authentifizierten AWS-Benutzer, nicht nur diejenigen, die für mein Konto authentifiziert sind, auf den Bucket zugreifen kann, den ich nicht möchte. Allerdings bin ich nicht in der Lage, Dateien zu (403), wenn ich nur Upload geben/lösche Erlaubnis an den Besitzer des Kontos, obwohl ich so authentifizieren:S3 Boto 403 Verboten, es sei denn Zugriff auf "jeden authentifizierten AWS-Benutzer"
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
Was bin ich in dieser Situation falsch?