ローカルマシンからAWSS3バケットにCSVファイルをアップロードしてそのCSVファイルを読み取るにはどうすればよいですか?
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にアップロードして、そのファイルを読み取ります。
つまり、使用しているのは boto2boto に移動することをお勧めします。以下の簡単な例をご覧ください。
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())