1

multipart/form-data를 허용하는 웹 응용 프로그램이 있으며 API 게이트웨이에 요청을 전달하도록 설정했습니다. 그러나 양식의 일부로 이미지를 업로드 할 때마다 업로드되고 손상된 원본 파일보다 커집니다. AWS API 게이트웨이를 거치지 않고 동일한 메소드를 실행하면 이미지 업로드가 잘됩니다. 여기에 내가 누락 된 아이디어가 있습니까?API 게이트웨이의 다중 경로 통과

f = request.files['attachment'] 
    fp = StringIO(f.read()) 
    file_uuid = str(uuid.uuid4()) 
    bucketkey.key = "att_%s%s" % (file_uuid, file_extension(f.filename)) 
    bucketkey.set_contents_from_file(fp) 

나는 그것의 유용한 만약에 전혀 손상 샘플 JPG로 링크를 첨부합니다 :

아래는 플라스크에 양식 데이터를 읽어 내 S3 코드입니다.

https://s3.eu-central-1.amazonaws.com/agendacommunities/att_ef7375b1-bb19-4df9-9162-5582ed66797c.jpeg

+0

아마도 Base64로 인코딩 된 것 같습니다. Base64로 해독 해 봤니? –

+0

안타깝게도 파일 자체 나 파일 내용을 디코딩 할 수 없습니다. 양식의 다른 필드는 당황 스럽지만 올바르게 전달됩니다. 나는 전신이 b64 인코딩되었지만 신이라고 생각했을 것이다. 그래도 입력에 감사드립니다! – Alex

+0

"손상된"이미지를 다운로드 * 해보고 16 진수 편집기로 파일 내용을 검토 했습니까? 업로드 한 내용을 살펴보면 파일이 커지도록하는 한 가지 방법이 있습니다. –

답변

1

StringIO와 목적은 무엇입니까? f.read()는 문자열이 아닌 바이트를 제공합니다. 나는 당신이 f를 set_contents_from_file에 직접 전달할 수 있고 f에서 읽을 것이라고 생각한다.

0

API 게이트웨이에서 데이터를 바이너리로 인식하려면 콘텐츠 유형 헤더를 설정해야합니다.

관련 문제