2016-11-21 1 views
2

Как загрузить CSV-файл из локального в мой ведро S3 и прочитать этот файл-файл. , пожалуйста, помогите мне.Загрузить CSV в myBucket и прочитать файл в S3 AWS с помощью python

bucket = aws_connection.get_bucket('mybucket') 
#with this i am able to create bucket 
folders = bucket.list("","/") 
    for folder in folders: 
    print folder.name 

Теперь вы хотите загрузить csv в мой csv и прочитать этот файл.

ответ

3

так что вы используете 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()) 
+0

И как дать разрешение .. Как сделать личное bucket.IF мое ведро уже есть. Как я могу сделать его частным? –

+0

Лучше всего работать с ведровой политикой прямо с консоли aws –

+0

Отличный ответ. Есть ли причина, по которой вы предпочитаете '' '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

Смежные вопросы