일반적으로 Discourse는 비디오 업로드를 위한 플랫폼이 아니라는 것을 알고 있습니다. 하지만, 제가 겪고 있는 문제를 해결할 방향을 알려줄 사람이 있을까 해서 문의드립니다.
일부 비디오 파일을 업로드하면 “업로드 중 100%” 상태에 무한정 멈추게 됩니다. 사용자가 취할 수 있는 유일한 조치는 페이지를 새로고침하거나 게시물을 닫는 것입니다. 얼마나 오래 기다리거나 파일 크기가 얼마나 작든 관계없이 이 현상은 반복됩니다.
명백히 어떤 형태의 검증이나 체크 코드가 파일을 멈추게 하고 있는데, 저는 Ruby on Rails / Discourse 개발에 아직 초보라 파일이 어디에서 막히는지 파악하지 못했습니다. 다만, 사용자에게는 매우 불편한 방법이지만 이 문제를 우회하여 파일을 문제없이 업로드하는 방법은 찾았습니다.
같은 파일을 파일 확장자를 .mp4에서 .pdf로 변경하여 업로드하면 아무 문제 없이 업로드가 완료되며, 실제로도 올바른 확장자로 추가됩니다.
예를 들어,
PXL_12234563421LS.mp4로 업로드하면 파일이 무한정 멈추지만, PXL_12234563421LS.pdf로 업로드하면 업로드가 완료되고 게시물에 올바른 비디오 마크다운이 삽입됩니다:
Uncaught IndexSizeError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The source width is 0.
at composer-video-thumbnail-uppy.js:80:31
Media resource blob:devsite.net could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR (0x806e0006)
크롬에서는 여기서 무슨 일이 일어나고 있는지 더 잘 파악할 수 있는, 아마도 더 나은 에러 메시지가 표시됩니다:
Uncaught DOMException: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The source width is 0.
at https://devsite.net/assets/chunk.d340137c92abde91812c.d41d8cd9.js:74:3649
Blake님, 이렇게 빠르게 처리해 주셔서 감사합니다! 테스트해 보니 Chrome에서는 잘 작동하지만, Firefox에서는 작동하지 않습니다. 여전히 "Uploading 100%"에서 멈추고, 콘솔에 다음과 같은 오류가 표시됩니다:
Media resource blob:https://devsite.net/a2deff66-3376-4c6e-9cca-f18275c312ce could not be decoded.
Media resource blob:https://devsite.net/a2deff66-3376-4c6e-9cca-f18275c312ce could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR (0x806e0006)