2016-10-14 4 views
0

AWS S3에서 파일을 다운로드해야하는 작은 앱을 만들었습니다.AWS S3 Flask에서 파일 다운로드

s3_client = boto3.resource('s3') 
req = s3_client.meta.client.download_file(bucket, ob_key, dest) 

을하지만 난 플라스크 경로에이 기능을 추가 할 경우 더 이상 작동하지 않습니다

나는이 방법으로 정확하게 데이터를 다운로드 할 수 있습니다.

ClientError :이 오류를 얻기는 경로 내에서 작동하지 않는 이유 잘못된 요청

내가 알아낼 수 아니에요 다음 HeadObject 작업을 호출 할 때 오류가 (400)가 발생했습니다. 어떤 생각?

답변

1

AWS 지역과 관련이 있습니다. 지역 이름을 추가 된 매개 변수로 언급하십시오. 이 명령을 사용하여 파일을 다운로드 할 수있는 경우

는 그것은 또한 당신의 API에서 잘 작동합니다,

aws s3 cp s3://bucket-name/file.png file.png --region us-east-1 

을 사용하여 로컬 컴퓨터에 그것을 시도하십시오.

+0

s3_client = boto3.resource ('s3', region_name = 'eu-central-1')에서 영역을 지정하려고 시도했지만 403 오류가 발생합니다. – Thomas

+0

위 응답을 보았습니다. 그것은 예상치 못한 오류입니다 : P – FallAndLearn

0

플라스크에서 s3_client를 함수 내부에서가 아니라 전역 변수로 선언해야한다는 것이 문제였습니다.

이제 완벽하게 작동합니다.