HTTP Range 지원이 없어 파일 다운로드를 재개할 수 없습니다

Discourse는 HTTP Range 헤더에 대한 지원을 누락하고 있으며, 파일 다운로드 시 206 Partial Content 대신 항상 200 OK 코드로 응답합니다. 이는 불안정한 인터넷 연결 상황에서 전체 파일을 다시 다운로드해야 하므로 포럼 사용자들에게 불편을 초래합니다.

Backup too big, is there a way to download it through "resume download" 토픽에서는 백업 다운로드 시 이 문제를 언급했지만, S3 스토리지가 사용되지 않는 경우에도 일반 파일 다운로드에 해당 문제가 적용됩니다.

nginx 프록시 구성을 확인해 보았으나, 이는 구성 문제가 아닙니다. /uploads/short-url/ 요청에 대해 Range 헤더가 localhost:3000으로 올바르게 전달되고 있지만, Discourse가 이를 처리하지 못하고 있습니다.

HTTP Range는 HTTP의 기본 기능 중 하나이므로, 이 문제를 "기능"이 아닌 “버그” 카테고리로 분류합니다.

P.S. meta.discourse.org에서는 재현할 수 없으며, 이는 S3를 스토리지로 사용하기 때문입니다.

2개의 좋아요

이 부분은 여기서 처리됩니다:

Range에 대한 지원을 추가하는 것은 분명히 가능하지만, send_data를 사용하고 디스크에서 파일을 읽은 후 해당 범위를 전송해야 합니다:

https://stackoverflow.com/a/57786143/702738

솔직히 말해서, 너무 복잡합니다.

1개의 좋아요