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

バグではありません。アセットの場所を変更した場合、再マッピングが必要になることは想定されています。

「いいね!」 1