Я использую Python и Boto для загрузки изображений на S3. Я могу заставить его работать, если я добавлю грантополучателя «Any Authenticated AWS User» и предоставит этому получателю разрешение на загрузку/удаление. Однако мое впечатление от документации и нескольких разных сообщений на этом сайте заключается в том, что это позволит буквально любому аутентифицированному пользователю AWS, а не только тем, которые были аутентифицированы для моей учетной записи, получить доступ к ведру, чего я не хочу. Тем не менее, я не могу загрузить файлы (403), если я только дать загружать/удалять разрешение на владельца счета, хотя я аутентифицировать так:S3 Boto 403 Запрещено, если доступ не предоставлен «любому пользователю Authenticated AWS»
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
Что я делаю неправильно в этой ситуации?