设置文件和图片上传到S3

上面的帖子是否仍然是允许管理员进行设置的有效指南?如果不是,是否有其他地方可以找到 2024 年的正确 S3 指南?据称这是 Discourse 团队官方支持的。

我们按照上面的指南进行了实现,但图片在 Discourse 实例上显示为损坏,尽管它们已上传到 S3。

我们的流程

  1. 按照上面的指南设置 S3 存储桶本身以及 S3 中的策略(所有步骤都已准确遵循)

  2. 按照上面的指南在 app.yml 和管理员中设置环境变量(相同)

  3. 重新构建应用程序

  4. 完全没有使用 CDN,因为我们认为 CDN 是可选的,并且在没有 CDN 的情况下也应该可以工作。

结果:

  1. 图片已上传到 Discourse 的存储桶
  2. 帖子中的链接已由 Discourse 正确替换为类似以下的亚马逊链接:
    xxx-bucket.s3.dualstack.us-east-1.amazonaws.com/original/1X/a1b21eb5de071799d4b5e5215619d11d28602dfe.jpeg
  3. 链接无法访问(假设是因为官方指南中的 S3 策略)

对官方指南中 S3 策略的假设更改。Principal:此策略未指定 Principal,这意味着它适用于任何拥有正确权限的已认证用户。如果要允许匿名(公开)访问,我们需要指定\"Principal\": \"*\"。这也可能不是一个好的解决方案,因为它会使存储桶公开。
这是假设,因为我们希望有人能在 2024 年更新指南以使其正确。