리사이즈 사용 시 이미지 업로드 오류

max image size kb 설정에 맞춰 리사이즈해야 하는 큰 PNG 파일을 업로드하려고 하면 다음과 같은 오류가 발생합니다:

lib/discourse.rb:57:in `exec': convert: improper image header `/tmp/image20200221-243-17ldizm.jpg' @ error/png.c/ReadPNGImage/4294.

이미지 확장자를 .jpeg로 변경하면 정상적으로 업로드됩니다!

max image size kb를 기본값으로 재설정해도 정상 작동하지만, 어쨌든 이미지를 jpeg로 변경하는 것 같습니다.

해당 이미지는 여기 있습니다: Dropbox


수정: max image size kb 옵션 아래에 이 내용도 방금 발견했습니다:

이미지 최대 업로드 크기(kB)입니다. 이 설정은 nginx(client_max_body_size) / apache 또는 프록시에서도 반드시 구성해야 합니다.

해당 설정을 하지 않은 것 같은데, 이것이 원인이 될 수 있을까요? (어디서 이 설정을 수정해야 하는지 예시가 있을까요?)

1개의 좋아요

사이트의 app.yml 파일에 upload_size 파라미터를 추가하여 해당 값을 늘릴 수 있습니다. 자세한 내용은 Change the maximum attachment/upload size 를 참고하세요.

5개의 좋아요

max image size kb를 500k로 변경하니 업로드가 성공했습니다. 다만, 사용자에게 표시되는 오류 메시지는 단순히 “업로드 실패: 이미지 크기가 너무 큽니다. 크기를 줄인 후 다시 시도해 주세요.” 정도로만 하는 게 나을 것 같네요.

5개의 좋아요

오류 메시지는 정말 나쁘긴 한데, 애초에 이 설정을 변경하는 사람이 얼마나 될지 궁금하네요.

5개의 좋아요

확실히 기억나지는 않지만, AFAIK(기억에 따르면) 해당 설정을 낮추고 업로드된 이미지가 그 크기보다 크면 Discourse가 이미지를 축소하려고 시도합니다.

png to jpg quality 설정과 관련이 있는 것 같습니다. 좀 전에 일이 있었지만, Sam이 이미지 리사이저를 작업한 것 같습니다.

변경하려는(즉, 더 작은 이미지 크기를 원하는) 사람들을 위해, 이미지 품질이 덜 중요한 사이트(즉, 사진 사이트 제외 대부분의 사이트)가 적합할 것 같습니다.


빠른 검색 결과 이것이 나왔습니다. 리사이저가 아직 구현되지 않은 것으로 보입니다(하지만 구현된 것으로 확신했습니다 :thinking:)

1개의 좋아요

저도 그렇게 이해하고 있었습니다… 서버에서 큰 업로드를 처리하는 다운사이징 기능이 이미 존재한다고요.

수정/업데이트:

이제 여기에서 꽤 잘 설명되어 있습니다:

5개의 좋아요

@dan 사용자가 매우 큰 이미지를 업로드하려고 할 때 더 나은 오류 메시지를 표시할 수 있는 방법을 찾아줄 수 있을까요? 우선순위는 낮습니다.

4개의 좋아요

여기서 두 가지 문제를 수정했습니다:

  1. 이미지 최적화 파이프라인이 PNG를 JPEG로 변환한 후, PNG 이미지에 사용되는 작업으로 생성된 JPEG를 최적화하려고 했습니다.

  2. ImageMagick 오류가 사용자에게 반환되었지만, 전혀 도움이 되지 않았습니다(예: convert: improper image header...).

8개의 좋아요