更改 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/discoursediscourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com(在此处你可以运行其他 Discourse 脚本)
如何在 Bitnami 安装 上运行 rake / Discourse 脚本