アップロードのためのS3互換のオブジェクトストレージプロバイダーを設定する

SeaweedFS を使用したことがある方はいらっしゃいますか? MinIO の不確実性から、このオプションを検討しており、Discourse との互換性の問題がないか試してみるつもりです。

R2 を正しく動作させるために、以下の設定を使用しました。

  ## この一連の行により、R2 S3 ホストされたファイルのアップロードとダウンロードが可能になります。
  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: auto
  DISCOURSE_S3_ACCESS_KEY_ID: access-key-id
  DISCOURSE_S3_SECRET_ACCESS_KEY: access-key
  DISCOURSE_S3_CDN_URL: https://eufiles.technospider.com
  DISCOURSE_S3_BUCKET: exotics-unlimited
  DISCOURSE_S3_BACKUP_BUCKET: exotics-unlimited-backups
  DISCOURSE_BACKUP_LOCATION: s3
#  DISCOURSE_CDN_URL: https://eufiles.technospider.com
  DISCOURSE_S3_ENDPOINT: https://71*****5d4976.r2.cloudflarestorage.com
#  DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
  DISCOURSE_S3_INSTALL_CORS_RULE: false

CDN_URL の行をコメントアウトしたところ、動作しました。R2 は CDN を自動的に作成するため、その行は不要であり、実際に追加すると問題が発生するようです。
バックアップサイズを抑えるために、画像を含める行をコメントアウトしました。R2 の無料枠を使用しており、制限を超過したくないためです。

その通りです。DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS は、S3から移行する場合以外は使用すべきではありません。S3に保存されているバックアップに含めるために、S3からすべての画像をダウンロードするのは意味がありません。以前、AWSバケットでこれを有効にしたままにしてしまい、毎日すべての画像をダウンロードしたために高額な請求が発生しました。

これは、S3バケットではなく、Discourseサーバーを指す別のCDNである必要があります。アバターなど、一部のものはサーバーから提供されます。機能しなかった理由は、サイトのCDNではなく、S3のCDNを含めたためです。

別々の会社を使うということですか?バケット用とCDN用で?私はこれに詳しくないので、3年生に教えるように情報をください…
R2インターフェースで「カスタムドメイン」を作成するとCDNとして機能するため、最初にその行を追加しようとしたのはそのためです。

とにかく、テストサイトでは完璧に動作しており、他に何か機能するはずなのに機能していないことがない限り、元の投稿を更新してCloudflareがDiscourseで動作するようになったことを示すことをお勧めします。

いいえ、それはできません。S3キー/シークレットは1つしかありません。S3アップロードを含める理由を無理に作ろうとしましたが、それはありません。

[quote=“tknospdr, post:499, topic:148916”]
R2インターフェースで「カスタムドメイン」を作成するとCDNとして機能することは知っているので、それが最初にその行を追加しようとした理由です。
[/quote] それはS3バケット用であり、あなたのサイト用ではありません。DISCOURSE_S3_CDN_URLDISCOURSE_CDN_URLという2つの異なる変数があります。あなたはそれらを同じであるかのように扱っています。サイトにCDNを使用することはできませんが、その変数を設定したときに機能しなかった理由は、間違ったCDNを指定したからです。

わかりました。やっていることの概要は少し掴めたと思っていましたが、今は完全に迷子になった気がします。

それで、S3 CDNとCDNの違いは何ですか?

コメントアウトしている2つのうち、どちらを逆にしてもまだ機能しますか?

ウェルカムバナーの背景画像に奇妙な問題があることに気づいたのですが、これもこれらと関係がありますか?