S3 エンドポイント変更手順は?

こんにちは、

どうやらこれがうまくいかないようです。すべての投稿に古いエンドポイントがまだ残っています。

手順:

  1. 管理者設定で「s3 エンドポイント」を変更
  2. すべての投稿を再構築(rake posts:rebake)
  3. Redis キャッシュをクリア
    上記でうまくいかないことを確認した後:
  4. rake posts:remap[‘http なしの古いエンドポイント’, ‘http なしの新しいエンドポイント’]
  5. すべての投稿を再構築
  6. コンテナを再起動
  7. サーバー全体を再起動
    これでもしうまくいかなかった場合:
  8. SQL を編集し、「posts」テーブルの「raw」および「image_url」カラムにある古いエンドポイントをすべて新しいエンドポイントに置換
  9. すべての投稿を再構築

これらすべてを行った後、古い投稿が古いエンドポイントを保持しているだけでなく、新しい添付ファイルを持つ新しい投稿にも古いエンドポイントが含まれています。「short-url」リンクも古いエンドポイントにリンクしています。

正しい手順は何でしょうか?

#bringBackMinio

すみません、これのやり方を知っている方はいますか?簡単なはずなんですが、わかりません

何かアドバイスはありますか、@falco

@plague69 設定について詳しく教えていただけますか?

古い S3 エンドポイント値と新しい S3 エンドポイント値は何ですか?

S3 に CDN を使用していますか?

変わっても問題ないと思っていました。変更後に間違っていれば修正できますが、変更させるのが難しいんです。

以前のエンドポイント:
http://discourse.domain.tld:9000

新しいエンドポイント:(ポートのみ変更。競合が発生し、他のサービスを移動できないため)
http://discourse.domain.tld:9001

CDN は変更なし:
http://files.domain.tld:80

必要であれば CDN を削除することもできますが、現時点では不要です。

@Falco さん、ありがとうございます。

標準ではないポートでの S3 サーバーの使用は、我々がテスト対象としていないため、試したことがありません。

とはいえ、app.yml ファイルで環境変数として S3 エンドポイントを設定してみてください。

env:
   # 現在の設定 ...
   DISCOURSE_S3_ENDPOINT:  http://discourse.domain.tld:9001

残念ながら、それはうまくいきませんでした。まだ 9000 のままです。

その環境変数を追加した後、コンテナを再起動するだけでなく、再構築を行う必要がありました。設定からオプションが削除されたため、それが機能していたことがわかり、再構築後にコンテナの起動パラメータにその変数が含まれていました。

S3 を使用しなくなった場合、すべてをローカルドライブにダウンロードする方法はありますか?バックアップには S3 は含まれていないため、バックアップとリストアすらできません。

posts:rebake はショート URL を再作成しますか?

S3 からローカルへの rake タスクが存在すると思います。ここで検索するか、ソースを確認してください。それが最善策でしょう。

以前は rake uploads:migrate_from_s3 というコマンドがありました。これは、S3 の URL 形式が変更された際(サブドメイン形式からスラッシュ形式へ)に Minio から S3 へ移行するためのスクリプトです。

現在、そのコマンド自体も見当たりません。