Amazon S3가 Content-Type 헤더를 보내지 않음

Amazon S3가 Content-Type 헤더를 보내지 않음

다양한 소스에서 콘텐츠를 다운로드하는 애플리케이션이 있습니다. 이는 이미지에 설정된 "Content-Type" 헤더에 의존합니다. 대부분의 웹 서버는 이 작업을 올바르게 수행하지만 Amazon S3 서버가 Content-Type을 설정하지 않는 것으로 보입니다.

Amazon 서버가 올바르게 구성되었다고 가정하는데 무엇이 문제일까요? 이미지가 제대로 업로드되지 않았나요? 아니면 설정된 콘텐츠 유형에 의존해서는 안 됩니까?

감사해요

답변1

S3에 업로드된 파일은 Content-Type 헤더에 정보를 제공해야 합니다. 폴더별로 "일반" 콘텐츠 웹 서버(그렇게 나쁜 생각은 아닙니다!)에서 수행할 수 있는 것과 같은 기본 콘텐츠 유형 정의가 없습니다.

답변2

객체를 S3에 업로드할 때 Content-Type 헤더에 클라이언트에 반환될 MIME 유형을 설정할 수 있는 옵션이 있습니다. S3는 이 헤더를 자체적으로 추가하지 않으므로 사용자가 해당 값을 설정하지 않은 경우 Content-Type 헤더가 반환되지 않습니다.

HTTP 서버는 Content-Type 헤더를 제공할 필요가 없으므로 대체 메커니즘을 제안합니다. 아마도 URL을 보고 파일 확장자를 추측할 수 있을까요? 약간의 해킹이지만 최소한 제공한 예에서는 작동합니다.

답변3

이것을 설정해야 합니다.

aws 관리 콘솔에서 문제의 파일을 탐색하면 "속성"을 클릭할 수 있습니다. 그런 다음 화면 하단의 메타데이터에 있습니다. Key Content-Type이 설정된 경우 원하는 대로 변경하고, 그렇지 않으면 새 키를 추가하고 Content-Type을 선택하고 적절한 값으로 설정합니다.

관련 정보