管理员菜单中不正确的 S3 警告

Discourse 2.7.0.beta1 的管理员菜单中显示的警告可能存在一个 bug(53f4d54f23)。

该警告内容如下:

在我的设置中,以下项已配置

  • s3_access_key_id
  • s3_secret_access_key
  • s3_upload_bucket

而以下项未配置,可能是触发警告的原因:

  • s3_use_iam_profile

该设置的说明如下:

使用 AWS EC2 实例角色 授予对 S3 存储桶的访问权限。注意:启用此选项要求 Discourse 运行在正确配置的 EC2 实例中,并且会覆盖“s3 access key id”和“s3 secret access key”设置。

然而,我的 Discourse 并未运行在正确配置的 EC2 实例中,因此我不希望它覆盖“s3 access key id”和“s3 secret access key”设置。我的 Discourse 运行在 Digital Ocean 上。

因此,对我来说,此选项正确处于未启用状态。

我认为这意味着在此场景下,管理员面板上显示的警告不应出现:thinking:

我的 S3 上传功能一直运行正常,多年来未进行任何更改:+1:t2:

3 个赞

昨天我合并了一条针对未使用 CDN 的 S3 用户的新警告。看来我把错误提示写错了 :facepalm:

将通过以下内容修复:

@Richie,你是故意不使用 CDN 而直接使用 S3 吗?我添加这条警告是因为我们在 Meta 收到了多个帖子,反映站点管理员因出站流量费用而向 S3 支付了过高的费用。

7 个赞

我的 s3 cdn url 设置目前为空,所以是的,我可能确实如此。

感谢修复这个错误 :+1:t2:

2 个赞

不过……
这是否意味着 CDN 警告现在会一直显示在 Discourse 管理面板中,而不是仅在设置 CDN 时显示?

即使我选择不设置 CDN,也会如此吗?:thinking:

2 个赞

是的,这个观点是:在生产环境中直接使用 S3 而不搭配 CDN 是一个明显的错误。任何为生产实例支付 S3 费用的用户,都有能力以更低的成本同时支付 S3 和 CDN 的费用。

如果你因某种原因不得不使用不带 CDN 的 S3,一个可行的变通方法是将 s3 cdn url 设置为存储桶的 URL,这样它就相当于一个空操作(noop)。

4 个赞

有意思。

好的,谢谢 @Falco。我会在接下来的一两天内安装上述修复方案,如果遇到问题,我会再开一个新的 Support 帖子。:+1:t2:

3 个赞