2014-06-24 3 views
3

지난 몇 시간 동안 Python을 통해 Boto에 로그인하려고 했으므로 문제가 해결되지 않은 것 같습니다. Windows에서 Python으로 Boto Credential Error가 발생했습니다.

No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] 
    Check your Credentials 

로거에 따르면 :

boto.set_stream_logger('boto') 

문제는 다음과 같습니다 파이썬은 그 오류 반환 유지 "[DEBUG]. 메타 데이터 서버에서 자격 증명을 가져 오는을" 이것은 내 자격 증명 파일을 찾을 수 없다는 것을 의미하며 내 액세스 및 보안 키가있는 "mycreds.boto"파일을 정확히 어디에 배치해야할지 모르지만 필자는이를 내 사이트 내의 boto 디렉토리의 여러 위치에 복사했습니다. 패키지. 광범위하게 검색했으며이 파일을 어디에 둘 것인지 확신 할 수 없습니다.

 s3 = boto.connect_s3() 

내가는 "올바른"위치에 아니었다면 내 파일 "mycreds.boto"의 경로를 지정 얼마나 확실하지 오전 : 사실을 감안할 때. 파일을 움직이는 방식으로 작동하지 않는 것을 보면서 환경 변수 "BOTO_CONFIG"를 "mycreds.boto"파일과 동일한 자격 증명을 저장하는 "boto.config"파일의 경로와 동일한 값으로 만들었습니다. 이것은 불행히도 어떤 문제도 해결하지 못했습니다. 마지막으로이 코드를 사용하여 로그인을 시도 :

 s3 = boto.connect_s3(<aws access>, <aws secret key>) 

는 로거에서 다음 반환 "[DEBUG]. 클라이언트가 제공 액세스 키를 사용" 및 "[DEBUG] : 클라이언트가 제공 한 비밀 키 사용." 다른 오류는 반환하지 않았지만 온라인으로 버킷에 액세스하려고하면 연결할 수 없습니다. 명령 창과 컴퓨터를 여러 번 다시 시작하려고했는데 그 외에 무엇을 시도해야할지 모르겠습니다. 기본적으로 아이디어가 부족하므로 도움을 주시면 감사하겠습니다. 저는 Windows 7과 Python 2.7.7을 사용하고 있습니다.

답변

2

기본적으로 boto는 /etc/boto.cfg~/.boto의 자격 증명을 찾습니다. os.path.expanduser을 사용하여 ~/.boto을 시스템의 적절한 경로로 확장하려고 시도합니다. Windows 플랫폼의 경우, 이는 HOMEUSERPROFILE 환경 변수에 의존합니다. 이 두 변수 중 어느 것도 환경에 설정되어 있지 않으면 boto 구성 파일을 찾지 못할 것입니다.

몇 가지 옵션이 있습니다. 사용자 환경의 HOME.boto 파일이 저장된 디렉터리로 설정되어 있는지 확인할 수 있습니다. 또는 환경 변수 BOTO_CONFIG을 파일 시스템에있는 모든 위치의 구성 파일을 직접 가리 키도록 설정할 수 있습니다. 이 옵션을 사용하면 boto 설정 파일의 완전한 경로로 설정해야합니다.

자격 증명을 직접 제공하지 않은 이유가 확실하지 않습니다. 어떻게 실패했는지에 대한 더 많은 정보를 제공해 줄 수 있습니까? 오류 메시지가 나타 납니까? 그렇다면, 무엇?

+0

자격 증명을 올바르게 적용한 것처럼 보였습니다. 저를 버린 것은 제 테스트였습니다. [bucket = s3.get_bucket ('bradbuckettest')]와 같은 코드를 작성했지만 s3 대신 conn을 사용했습니다 (다른 자습서의 구문을 따름). 물론, 이것은 오류를 던져서 단지 자격 증명 문제라고 가정했습니다. 환경 변수를 직접 설정 파일에 선언했는데 작동하지 않았으므로 인증서를 직접 제공해야합니다. 응답 해 주셔서 감사합니다. – Brad

관련 문제