2012-12-13 2 views
7

Boto를 사용하여 AWS에 액세스하려고하는데 작동하지 않습니다. 나는 Boto와 boto.cfg를/etc에 설치했다.Boto를 사용하여 Python S3에 연결하기

import requests, json 
import datetime 
import hashlib 
import boto 

conn = boto.connect_s3() 

다음은 오류입니다 : 여기 내 코드는

Traceback (most recent call last): 
    File "boto.py", line 4, in <module> 
    import boto 
    File "/home/mydir/public_html/boto.py", line 6, in <module> 
    conn = boto.connect_s3() 
AttributeError: 'module' object has no attribute 'connect_s3' 

도대체? 이것은 복잡하지 않습니다.

+0

확실하지 않음 경우, 그러나 나는군요 boto/utils.py ", 171 행 merge_meta boto.s3.key.Key.base_user_settable_fields의 k.lower() : AttributeError : '모듈'객체에 '키'속성이 없음 – radtek

답변

0

당신은 내가 다음과 같습니다 내 코드의 일부에 EC2Connection 클래스를 이용했던 방법과 유사한 일을 할 필요가 있습니다 : 자신의 문서에서,

from boto.ec2.connection import EC2Connection 
conn = EC2Connection(...) 

또한 (http://boto.s3.amazonaws.com/s3_tut.html) :

>>> from boto.s3.connection import S3Connection 
>>> conn = S3Connection('<aws access key>', '<aws secret key>') 

EDIT : 사용하려는 바로 가기 기능이 문서 페이지에 있지만 EC2에서 같은 유형의 바로 가기를 사용하려고 할 때 비슷한 문제가 발생한다는 것을 알고 있습니다.

17

작업중인 파일이 boto.py 인 것처럼 보입니다. 제 생각에는 파일이 스스로 가져 오는 것입니다 - 파이썬은 여러분의 PYTHONPATH을보기 전에 가져 오기를하는 파일이 들어있는 디렉토리에서 모듈을 찾습니다. 이름을 다른 것으로 변경해보십시오.

+0

완전히 작동했습니다. 감사합니다! –

+1

@RandallPinkston accept로 표시하시오. – igaurav

+3

생성 된'boto.pyc' 파일을 삭제해야합니다. – jveldridge

0

연결 클래스를 사용하십시오.

from boto.s3.connection import S3Connection 
from boto.sns.connection import SNSConnection 
from boto.ses.connection import SESConnection 

def connect_s3(self): 
    return S3Connection(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) 

def connect_sns(self): 
    return SNSConnection(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) 

def connect_ses(self): 
    return SESConnection(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) 
2

valdogg21

@ 난 당신의 지침에 따라 오전 내 코드에 이것을 넣어 :

from boto.s3.connection import S3Connection 
conn = S3Connection('<aws access key>', '<aws secret key>') 

을하지만 내 좋은 의도에도 불구하고, 그것은 작은 오류가 발생합니다. 방금 전 최신 버전을 설치하기 위해

sudo pip install boto --upgrade을 설치했습니다.

이것은 오류 메시지입니다. 나는 고독한 늑대이다 또는 다른 사람이 문제가 발생하면 ...

from boto.s3.connection import S3Connection ImportError: cannot import name S3Connection

0

나는 당신의 모든 솔루션을 시도했지만, 그들 중 누구도 제대로 작동하지 않는 경우 그냥 궁금. 나는 StackOverFlow를 계속 간다. 나는이 작은 문제가없는 다른 누군가를 볼 수 없다. 이상한 사실의 종류는 서버에서 매력처럼 작동한다는 것입니다. 문제가 Mac에 발생했습니다

0

boto3 및 moto를 사용하여 s3 버킷을 조롱 할 때 동일한 오류가 발생했습니다.

boto3.connect_s3() 

내 라이브러리를 boto로 전환 했으므로 정상적으로 작동했습니다. 내가 너무 AWS 람다 비슷한 문제를 해결할 수

boto.connect_s3() //works 
boto3.resources('s3') //works 

: 그것은 자원에 boto3 마이그레이션 것처럼 connect_s3()() 보이는 내 오류가 관련이

boto.connect_awslambda() //works 
boto3.client('lambda') //works