S3 클론에 업로드 시 'Broken pipe' 오류 발생 (이름에 é, ï 등 특수문자가 포함된 PDF)

최신 앱에서 1시간 전에 재빌드했는데, 메타 환경에서는 재현이 되지 않습니다. 프랑스어 로케일 관련 문제인 것 같습니다.

laïcité.pdf라는 이름의 PDF를 업로드하려고 하면 파이프 깨짐(broken pipe) 오류가 발생하지만, 같은 파일을 laicite.pdf로 이름만 바꾸면 정상적으로 작동합니다.
laïcité.jpg도 정상적으로 작동합니다.

décroissance.pdf라는 이름의 파일은 "내부 오류가 발생했습니다. 다시 시도해 주세요."라는 다른 오류를 반환합니다. :face_with_raised_eyebrow:

참고로, S3 클론(scaleway)도 함께 사용 중인데, rake uploads.migrate_to_s3를 실행할 때도 파이프 깨짐 오류가 발생했습니다. 하지만 이 문제는 무관해 보입니다.

추가로, S3 클론 업로드와 관련이 있을 수도 있겠네요. S3 업로드 옵션을 활성화하기 직전에 업로드된 3주 전 파일 중에도 악센트가 있는 이름이 하나 있었습니다. :roll_eyes:

1개의 좋아요

discourse/lib/file_store/s3_store.rb at main · discourse/discourse · GitHub 의 62번째 줄

options[:content_disposition] = "attachment; filename=\"#{filename}\""

content disposition은 다음과 같이 포맷팅되어야 할 수도 있습니다:

options[:content_disposition] = ActionDispatch::Http::ContentDisposition.format(
        disposition: "attachment", filename: upload.filename
      )

이는 다음 커밋과 유사합니다:

이 경우, 이 content_disposition도 마찬가지일 수 있습니다:

4개의 좋아요

맞는 말씀인 것 같습니다. 파일명 관련 이런 문제들은 항상 제 머릿속에서 빠져버리더라고요. 내일 이 문제를 수정하는 PR을 올릴 수 있을 것 같습니다. 보고해 주셔서 감사합니다!

4개의 좋아요

곧 적용될 빌딩 수정 사항입니다. 위의 PDF 파일 이름으로 테스트해 보았으며 정상적으로 작동합니다 :ok_hand:. 수정 사항이 곧 적용될 예정입니다!

3개의 좋아요