так что вы используете boto2 я хотел бы предложить, чтобы перейти к boto3 - смотрите ниже некоторые простые примеры
boto2
пример загрузки
import boto
from boto.s3.key import Key
bucket = aws_connection.get_bucket('mybucket')
k = Key(bucket)
k.key = 'myfile'
k.set_contents_from_filename('/tmp/hello.txt')
скачать пример
import boto
from boto.s3.key import Key
bucket = aws_connection.get_bucket('mybucket')
k = Key(bucket)
k.key = 'myfile'
k. get_contents_to_filename('/tmp/hello.txt')
boto3
пример загрузки
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('mybucket')
s3.Object('mybucket', 'hello.txt').put(Body=open('/tmp/hello.txt', 'rb'))
или более простой
import boto3
s3 = boto3.resource('s3')
s3.meta.client.upload_file('/tmp/hello.txt', 'mybucket', 'hello.txt')
скачать пример
import boto3
s3 = boto3.resource('s3')
s3.meta.client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt')
print(open('/tmp/hello.txt').read())
И как дать разрешение .. Как сделать личное bucket.IF мое ведро уже есть. Как я могу сделать его частным? –
Лучше всего работать с ведровой политикой прямо с консоли aws –
Отличный ответ. Есть ли причина, по которой вы предпочитаете '' 's3 = boto3.resource ('s3') s3.meta.client.download_file ('mybucket', 'hello.txt', '/tmp/hello.txt')' ' ' , а не ' '' s3 = boto3.client ('s3') s3.upload_file ('/tmp/hello.txt', 'mybucket', '') hello.txt '' ' ? – Peter