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 スクリプトを実行する方法はこちらです。