2016-07-12 3 views
1

python으로 boto를 사용하여 Amazon S3에서 데이터를 가져 오려고합니다.python에서 boto를 사용하여 S3에서 데이터를 가져 오는 중 오류가 발생했습니다.

from boto.s3.connection import S3Connection 

AWS_KEY = 'MY_KEY' 
AWS_SECRET = 'MY_SECRET' 
aws_connection = S3Connection(AWS_KEY, AWS_SECRET) 
bucket = aws_connection.get_bucket('s3://mybucket.buckets.com/') 
for file_key in bucket.list(): 
    print file_key.name 

유효한 키 secret_key 및 Bucketname을 전달 중입니다.

나는 다음과 같은 오류 받고 있어요 위의 코드를 실행하려고 - 방법이 오류를 극복하는

Traceback (most recent call last): 
    File "MyPython_Script.py", line 7, in <module> 
    bucket = aws_connection.get_bucket('s3://mybucket.buckets.com/') 
    File "/usr/local/lib/python2.7/site-packages/boto/s3/connection.py", line 506, in get_bucket 
    return self.head_bucket(bucket_name, headers=headers) 
    File "/usr/local/lib/python2.7/site-packages/boto/s3/connection.py", line 525, in head_bucket 
    response = self.make_request('HEAD', bucket_name, headers=headers) 
    File "/usr/local/lib/python2.7/site-packages/boto/s3/connection.py", line 668, in make_request 
    retry_handler=retry_handler 
    File "/usr/local/lib/python2.7/site-packages/boto/connection.py", line 1071, in make_request 
    retry_handler=retry_handler) 
    File "/usr/local/lib/python2.7/site-packages/boto/connection.py", line 1030, in _mexe 
    raise ex 
socket.gaierror: [Errno 8] nodename nor servname provided, or not known 

어떤 생각을? 내 형식이 버킷 이름을 올바르게 전달하는 데 사용됩니까? 당신이 사용하는 경우 당신이

from boto.s3.connection import S3Connection 

AWS_KEY = 'MY_KEY' 
AWS_SECRET = 'MY_SECRET' 
aws_connection = S3Connection(AWS_KEY, AWS_SECRET) 
bucket = aws_connection.get_bucket('bucket_name', validate=False) 
for file_key in bucket.list(): 
    print file_key.name 

을 boto2 사용하는 경우는 버킷의

답변

2

당신은 그냥 이름을 전달하지 원활한 URL이 필요

(즉, 엔드 포인트가 http://s3-aws-region.amazonaws.com/bucket 것 S3 주) boto3

import boto3 

s3 = boto3.resource('s3') 
bucket = s3.Bucket('name') 
관련 문제