禁用 onebox 中的媒体下载

你好,我看到有一个禁用音频下载的选项:

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

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 的“下载”选项进行下载。有人能帮忙吗?非常感谢。

1 个赞

我不知道,但是如果禁用了下载,应该如何收听音频?

在帖子末尾的三个点处有一个下载选项:请参阅此帖中的图片:

我希望隐藏/禁用明确的下载选项,同时仍然允许用户收听音频。

我还是不明白。Discourse 不能流式传输,所以必须下载音频文件才能收听。或者我完全错了?

或者,当用户不知道自己在下载时,您是否接受下载,因为用户的设备没有询问应该保存在哪里?

然而,音频仍然可以通过录音来保存 :wink:

抱歉——我一点忙都没帮上,但我很想了解为什么、什么、在哪里以及所有的一切 :rofl:

我非常薄弱的一点是,这种禁用尝试很少成功,或者不需要。但如果可以做到,那也很好。

1 个赞

如果允许显式下载选项,音频/视频内容可能会在其他地方存储/使用/商业化,而这些地方可能未正确授权知识产权。因此,最好将禁用显式下载选项作为默认选项。

您能否建议如何在设置/代码级别实现这一点?谢谢。

我没用过,但这个话题里的内容有帮助吗?

1 个赞

就网站(使用 discourse)本身而言,重要的是要避免任何未来的知识产权相关问题。即使作者使用了 TC 或某种主题,任何侵犯知识产权的行为都可能使网站承担潜在损害赔偿等责任。即使网站似乎与之无关,仅仅因为它充当了交流渠道,一些律师也可能有其他想法。

因此,禁用显式下载选项应该非常有用,因为您在 YouTube 等大多数大型网站上都看不到此类选项。有人能帮忙提供实现这一目标的代码/设置吗?

1 个赞

之后,您需要重新烘焙或编辑带有本地音频的帖子。您尝试过吗?

1 个赞

如何重新烘焙或编辑帖子?

点击帖子 :kbd: … 按钮,然后点击 :wrench: 按钮,最后点击“Rebuild HTML”

“重建 HTML”已完成,但仍有“下载”选项。

让我们来测试一下:

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

https://d11a6trkgmumsb.cloudfront.net/original/3X/8/8/8819dba2a51ca9f987e93d64dfe823161141d0f6.mp3

第二个可以工作(没有下载选项),但第一个仍然存在。

我明白了,站点设置只影响 onebox,所以只影响第二种音频,而不影响第一种,因为它在技术上不是 onebox。

要使第一个案例生效,还需要做什么?

1 个赞

如果你想深入研究代码,它来自:

你需要在该上下文中以某种方式接收站点设置并进行处理。

2 个赞

作为一个硬编码的快速修复,我尝试了:

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

并将 controlsList="nodownload" 追加到 \u003caudio preload="metadata" controls\u003e

然后运行 ./launcher restart app

但仍然有下载选项。我应该重建应用程序吗?

这行不通,因为 JavaScript 是由我们相当复杂的资源管道编译的。

如果您想要一个快速且粗糙的解决方案,一个监听我们的 decoratedCooked 回调并更改 audio 元素的组件是您的最佳选择。您可以在 Discourse 主题开发者指南 中了解它。

1 个赞