2016-11-21 19 views
2

CSVファイルをローカルからS3バケットにアップロードし、そのscvファイルを読み込む方法。 私を助けてください。myBucketでCSVをアップロードし、S3 AWSでファイルを読み込みます。

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に移動することをお勧め -

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') 

例をアップロードするいくつかの簡単な例

boto2

下記参照してくださいダウンロードの例

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

許可を与える方法..私のバケツを作る方法。私のバケツはすでにそこにあります。私はプライベートにすることはできますか? –

+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

関連する問題