更新的 s3 区域设置对新上传的资产无效

更改 Discourse 的 s3_region 设置后,默认值 us-east-1 被更改为 us-west-2,新上传的图片成功上传到 S3,但 Discourse 尝试引用之前的默认 us-east-1 区域,导致新上传的图片失效。

例如,对于新上传的图片…
预期:my-bucket.s3.dualstack.us-west-2.amazonaws.com/original/1X/xyz.png
实际: my-bucket.s3.dualstack.us-east-1.amazonaws.com/original/1X/xyz.png

解决方法 运行 discourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com 使系统能够为新上传的图片使用正确的 s3_region(并修复之前上传的图片,如预期)。

奇怪的是,这个问题是间歇性的。这可能对之前上传的图片有效。我不确定。

大多数人可能在更改此设置时都会运行 remap。在我的例子中,我正在设置一个新的论坛。我只是将设置更改了一个方向,然后又改了回来,导致所有图片上传都失效了。

我昨天在 main 的最新提交上验证了此行为:(提交:967946378

相关问题/讨论

给后来遇到此问题的人(包括我自己)的一些说明:

我正在使用 Digital Ocean 安装程序运行 Discourse。要运行 remap 或其他 Discourse 脚本:

  • SSH 到你的服务器
  • cd /var/discourse
  • 通过运行 ./launcher enter app 进入容器
  • cd /var/www/discourse
  • discourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com (在此处你可以运行其他 Discourse 脚本)

如何在 Bitnami 安装 上运行 rake / Discourse 脚本

这不是一个 bug,因为如果您更改了资产的位置,则需要重新映射。

1 个赞