원박스에서 미디어 다운로드 비활성화

안녕하세요, 오디오 다운로드를 비활성화할 수 있는 옵션이 있다는 것을 확인했습니다:

<audio controls #{@options[:disable_media_download_controls] ? 'controlslist="nodownload"' : ""}>

링크: onebox/lib/onebox/engine/audio_onebox.rb at main · discourse/onebox · GitHub

그리고

disable_media_download_controls: SiteSetting.disable_onebox_media_download_controls,

링크: discourse/lib/oneboxer.rb at 03998e0a299b7ae89678e2854e3abf84bd6ef132 · discourse/discourse · GitHub

그래서 다음과 같이 작성해 보았습니다:

./launcher enter app
rails c
SiteSetting.disable_onebox_media_download_controls=true

그리고 여기에서도

vi containers/app.yml
params 아래에:
disable_media_download_controls: true
disable_onebox_media_download_controls: true
env 아래에:
DISCOURSE_DISABLE_ONEBOX_MEDIA_DOWNLOAD_CONTROLS: true

하지만 여전히 onebox의 “다운로드” 옵션을 통해 오디오를 다운로드할 수 있습니다. 도와주실 분 계신가요? 감사합니다.

모르겠지만, 다운로드가 비활성화되어 있으면 어떻게 오디오를 들어야 할까요?

끝에 있는 세 점을 클릭하면 다운로드 옵션이 있습니다. 이 게시물의 그림을 참고하세요:

저는 사용자가 이 기능을 통해 오디오를 청취할 수 있도록 유지하면서, 명시적인 다운로드 옵션은 숨기거나 비활성화하는 것을 원합니다.

여전히 이해가 안 돼요. Discourse는 스트리밍을 지원하지 않으니, 오디오 파일을 듣기 위해서는 다운로드가 필수적인 거죠? 아니면 제가 완전히 틀린 건가요?

아니면, 사용자가 다운로드하고 있다는 사실을 모를 때(예: 기기가 저장 위치를 묻지 않을 때) 다운로드를 허용하는 건가요?

그래도 녹음 기능을 통해 그 오디오를 저장할 수는 있죠 :wink:

죄송합니다 — 저는 별로 도움이 안 되는데, 왜, 무엇을, 어디서, 그리고 모든 것에 대해 이해하고 싶어요 :rofl:

제 가장 약한 부분은 그런 종류의 무효화 시도가 성공적으로 이루어지는 경우는 드물거나, 또는 필요하지 않다는 점이에요. 하지만 가능한 일이라면 괜찮아요.

명시적인 다운로드 옵션을 허용하면, 해당 지식재산권이 적절히 승인되지 않은 다른 곳에서 오디오/비디오 콘텐츠를 저장하거나 사용하거나 상업적으로 이용할 수 있습니다. 따라서 명시적인 다운로드 옵션을 비활성화하는 것이 기본값으로 설정하는 것이 현명할 것입니다.

설정/코드 수준에서 이를 어떻게 구현할 수 있는지 조언해 주실 수 있을까요? 감사합니다.

제가 사용해 본 적은 없지만, 이 주제에서 도움이 될 만한 내용이 있을까요?

디스커스를 사용하는 웹사이트 자체에 관해서는, 향후 IP(지식재산권) 관련 문제가 발생하지 않도록 하는 것이 중요합니다. 저작자가 TC나 테마를 사용하더라도, IP 침해가 발생하면 웹사이트 측이 잠재적 손해 등에 대해 책임질 수 있습니다. 웹사이트가 이에 무관해 보일지라도, 단순히 교환 채널 역할을 한다는 이유만으로 일부 변호사는 다른 의견을 가질 수 있습니다.

따라서 명시적인 다운로드 옵션을 비활성화하는 것이 매우 유용할 것입니다. 유튜브와 같은 대형 웹사이트에서는 이러한 옵션을 보기 어렵기 때문입니다. 해당 기능을 구현하기 위한 코드나 설정에 대해 도움을 주실 수 있는 분이 계신가요?

그 후 로컬 오디오가 포함된 게시물을 다시 생성하거나 편집해야 합니다. 시도해 보셨나요?

게시물을 다시 구우거나 편집하는 방법은 무엇인가요?

게시글 … 버튼을 클릭한 후, :wrench: 버튼을 클릭하고, 마지막으로 "Rebuild HTML"을 클릭하세요

“HTML 다시 만들기”는 완료되었지만, 여전히 “다운로드” 옵션이 있습니다.

이것을 테스트해 보겠습니다:

![614107_11861866-lq|audio](upload://jq0kR3R4YPrn1kM48EL33oVgjT8.mp3)

https://global.discourse-cdn.com/meta/original/3X/8/8/8819dba2a51ca9f987e93d64dfe823161141d0f6.mp3

두 번째는 작동합니다(다운로드 옵션이 없음), 하지만 첫 번째에는 여전히 있습니다.

아, 알겠습니다. 사이트 설정은 원박스에만 영향을 주니까, 첫 번째 유형의 오디오는 기술적으로 원박스가 아니므로 해당되지 않고, 두 번째 유형의 오디오에만 적용되는 거군요.

첫 번째 사례가 작동하려면 다른 어떤 작업이 더 필요합니까?

해당 코드가 생성되는 부분을 자세히 살펴보고 싶다면

링크를 참고하세요. 해당 컨텍스트에서 사이트 설정을 어떻게든 받아와서 처리해야 합니다.

간단한 하드코딩 해결책으로 다음을 시도해 보았습니다:

./launcher enter app
vi app/assets/javascripts/pretty-text/addon/engines/discourse-markdown-it.js

그리고

controlsList="nodownload"

을
<audio preload="metadata" controls>

에 추가하고

./launcher restart app

을 실행했지만, 여전히 다운로드 옵션이 표시됩니다. 앱을 다시 빌드해야 하나요?

JS가 다소 복잡한 자산 파이프라인을 통해 컴파일되기 때문에 그렇게 하면 작동하지 않습니다.

빠르고 즉석에서 해결하는 방법을 원하신다면, decoratedCooked 콜백을 듣고 audio 요소를 변경하는 테마 컴포넌트를 사용하는 것이 가장 좋습니다. Discourse 테마 개발자 가이드에서 이에 대해 자세히 알아볼 수 있습니다.