[AWS S3]이미지 링크가 다운로드 되는 현상 해결
[AWS S3]이미지 링크가 다운로드 되는 현상 해결
문제
FAST API 서버에서 AWS S3에 업로드한 이미지 링크가 웹에서 열리지 않고 다운로드가 되는 현상이 발생했었다
해결법
1. 이미지 파일 확인
이미지를 S3에 드래그해서 직접 업로드 하여 이미지 파일 자체 문제인지 확인 결과
직접 업로드한 이미지는 링크에서 바로 이미지가 보여서 이미지 파일 자체 문제는 아니였다
2. Content-type 확인
코드를 통해 업로드 되는 이미지의 content-type 확인 결과 binary/octet-stream으로 업로드 되고 있었다
기존의 읽기 권한 외에도 UploadFile의 content type을 가져와서 지정하도록 수정하였다
1
2
3
4
5
6
7
8
9
content_type = module_set_images.content_type if module_set_images.content_type else "image/jpeg"
saved_images = s3_storage.upload_file_generic(
module_set_images.file,
"moduletype",
module_set_id,
filename=module_set_images.filename,
default_ext=".jpg",
ExtraArgs={"ACL": "public-read", "ContentType": content_type} // content type 추가
)
하지만 content-type이 제대로 image로 적용되어도 동일한 현상이 발생했다
3. 이미지 파일 이름 변경
링크로 다운로드 받은 이미지 파일의 공백이 전부 +로 표시되는것을 보고
공백을 전부 지우고 업로드 하니 정상적으로 이미지를 확인 가능했다
후기
아마 공백 문자열 인코딩으로 발생하는 현상 같은데 구체적인 원인은 잘 모르겠다
This post is licensed under CC BY 4.0 by the author.