安全媒体和优化图像?

大家好:

我刚接触 Discourse 的管理工作。我最近在 2.6.0.beta4 版本中启用了“启用 S3 上传”和“安全媒体”功能。看起来一切正常——我可以上传图片,并且这些图片会通过带有过期令牌的 S3 链接提供(原本以为它们会从我的 Discourse 服务器 URL 提供,但似乎只有非图片上传才会这样)。

我说“看起来正常”,但实际上它似乎并没有像我之前使用本地存储上传图片时那样完全正常工作。特别是“优化”功能似乎没有生效。如果我使用的术语不正确,请见谅,我还在学习中。但简单来说,在迁移到 S3/安全设置之前,我会看到“灯箱”功能被启用:用户会在响应式灯箱框架中看到一张较小的图片,并且可以选择查看原始图片。

现在的情况是,除了头像图片外,似乎没有生成优化后的图片。当用户发布新帖子并上传图片时,图片仅存储在 /original/1x 目录下,而 /optimized/1x 目录下并没有生成对应的优化图片。因此,在查看帖子时,只会简单地嵌入原始图片。

这样配置后出现上述行为是正常的吗?我尚未找到直接讨论此问题的帖子,也没有看到其他人抱怨类似情况。如有任何相关信息,不胜感激。

我在想,我提出的问题是否属于常见问题,或者我表达得不够清楚。如果有人能指出我提问中的问题,或者说明我哪里没表达清楚我的意图,那就太好了。

你的问题很清晰,而且在 Meta 上搜索“secure media optimized images”也没有返回任何有用的结果,因此这不属于常见问题。

我不确定在启用“secure media”设置时,优化后的图片应如何处理。我们需要等待更了解其预期工作方式的人员来回复。

感谢回复,Simon。我在想接下来可以采取哪些步骤来进一步调试。我猜可能需要启动一个新实例并进行全新安装,然后我可以尝试各种选项,看看会发生什么。目前,我甚至不确定是迁移到 S3 存储导致的问题,还是启用安全媒体功能导致的。

当然,我也可以查看源代码,但鉴于这是一整套我不太熟悉的架构,这似乎会是一个更漫长的过程。

请注意,安全媒体是一项非常复杂、面向专家级别的功能。因此,您可能会遇到一些挑战。

你好,Jeff,

是的,我在设置时确实看到了那些警告。不过,实际的配置步骤看起来相当直接,过程也很顺利。文档中是否没有涵盖配置中更复杂的部分?

我的论坛已经上线并运行,整体情况良好,除了这个问题。我甚至不确定这是否只是启用安全媒体后的正常现象。

如果我想进一步了解你提到的那些复杂性,能否为我指个方向?我是 Discourse 的新手(当然,对 Rails 应用也是如此),但在云系统的开发与维护方面我有丰富的经验。

@martin 是这方面的常驻专家。

我刚刚测试了一下,在安全媒体配置完成的情况下,我的大图上传功能运行正常,并且生成了 5 张带有正确安全设置的优化图片。查看这些图片的生成方式,我想知道您的 responsive_post_image_sizescreate_thumbnails 站点设置是否被修改过?

当您上传一张过大且应该被优化的图片时,会弹出 Lightbox 吗?请注意,如果图片太小,则不会为其生成优化图片。

你好 Martin,

responsive_post_image_sizescreate_thumbnails 均已设置为默认值(分别为 [1, 1.5, 2]true)。

我上传了这张图片,分辨率为 7680x4320。我可以看到原始图片已正确存储在 S3 的 /original/1x 文件夹中,并且在 /optimized/1x 中存储了一个分辨率为 1024x576 的优化版本。这令人鼓舞;我之前曾提到图片未在 /optimized/1x 中生成,看来那是错误的。

不过,当我在 PC 或移动设备上,使用 Chrome 或 Firefox 查看帖子时,我发现嵌入在帖子中的是 /original/1x 的图片。以下是该图片的检查结果:


(注意:我已在此截图中隐去了我的站点域名。此外,我将 DISCOURSE_RELATIVE_URL_ROOT 设置为 /forum,因此该图片的 src URL 中包含 /forum/。)

这就是我目前看到的情况。您是否有建议的后续步骤,供我进一步调试?非常感谢您对此事的关注 @martin,我真的很感激。