2016-08-30 2 views
0

content-length-range 헤더로 파일 크기에 제한을 두는 것이 가능하다는 것을 알고 있습니다. 그러나 파일 형식의 유효성을 검사 할 수 있습니까?S3 미리 서명 된 POST 파일 형식의 유효성을 검사합니까?

https://docs.aws.amazon.com/AmazonS3/latest/dev/HTTPPOSTForms.html#PolicyConditions

내가이 말을 audio/mp3이 만 MP3 파일을 허용하고, 파일이 MP3가 아닌 경우 오류를 반환 설정하는 경우 Content-Type 헤더,이 참조?

나는이 이전 질문을 찾았지만 대답은 파일 크기를 확인하는 언급 : s3 direct upload restricting file size and type

답변

1

당신은 당신의 POST 요청의 콘텐츠 형식을 지정할 수 있습니다.

당신은 또한 당신의 서명에 그것을 지정할 수 있으므로 포스트가 콘텐츠 형식으로 수행해야합니다

{ "expiration": "2007-12-01T12:00:00.000Z", 
    "conditions": [ 
    {"acl": "public-read" }, 
    {"bucket": "johnsmith" }, 
    {"Content-Type: "audio/mp3"} 
    ] 
} 

Creating an HTML Form (Using AWS Signature Version 4)

편집 : 당신이 발견 이전 질문에서, 그들은 실제로 Content-Type을 확인하십시오.

+1

정책에'Content-Type'을 지정했지만, 업로드 된 파일에 헤더를 추가한다는 의미입니다. 난 그냥 PNG 이미지를 업로드하려고했는데 여전히 'Content-Type : audio/mp3' 헤더가 메타 데이터에 추가되어 업로드됩니다. – Chris

+0

정책의 Content-Type은 POST 요청 내에 보낸 Content-Type과 동일해야하므로 Content-Type을 보내지 않고 백엔드에서 (또는 서명을 만드는 모든 곳에서) Content-Type을 설정할 수 있습니다. 프론트 엔드에서. 또한 Content-Type을 서명 할 때 백엔드에서 Content-Type을 확인하고 Content-Type이 원하는 것이 아니면 실패 할 수 있습니다. – Alomsimoy

+0

그래서 사용자가 양식을 게시하기 전에 업로드 할 파일을 선택하면 Content-Type 헤더를 변경해야합니까? – Chris

관련 문제