S3からローカルへのアップロードの移行

残念ながら、私には100%うまくいったものはありませんでした。最終的にどうされましたか?

「いいね!」 1

現在の3.xバージョンでこれがどのように機能するか、何か手がかりはありますか?S3にまだたくさんの画像があり、ローカルに戻す方法を見つける必要があります。提案を歓迎します。(rake uploads:migrate_from_s3 はもはや存在しません)

すべてローカルから動作するように設定しました(バックアップのみがS3にあります)。多くの投稿がまだS3を指していることがわかりました。リンクは次のようになっています。

<img src="//x.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG" width="308" height="206">

これは次の場所を指しています。

https://xxx.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG

「いいね!」 1

この件について何か提案はありますか?アップデートや変更のたびに問題が発生して本当にうんざりしています :slight_smile:

未解決です。Discourseに解決策があれば良いのですが。

「いいね!」 1

ああ。もしそれがあなたのサイトで、S3にファイルがあるなら、S3をオンにして、https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535で説明されている非表示の設定を有効にして、バックアップを作成し、設定をローカル画像に変更してバックアップを復元できるはずです。

「いいね!」 2

これが機能したかどうか、誰かに知ってもらいたいと思っています。

Discourse.org ホスティングからセルフホスティングに移行し、バックアップを取得する前にその設定をオンにしていたすべてのサイトで機能します。

バックアップを作成する際に S3 設定をすべて (YML ファイルで) 設定し、リストアを行う前にそれらをすべて (データベースを含む、そこに設定した場合) オフに戻す必要があるため、少しトリッキーです。

「いいね!」 1

非常に論理的な方法ですが、Cloudflare R2 を使用しているユーザーには機能しません。それとも、この問題は私だけでしょうか。バックアップを作成した際、隠し設定もオンにしました。残念ながら、R2 のファイルはバックアップに含まれていません。ここでエラーが発生します: Uploads in cloudflare R2 are not added to the backup: Failed to download ******* because Aws::S3::Errors::Http501Error

「いいね!」 1

ドキュメントとあなたの経験から、R2 はサポートされていないことが示唆されているため、別の方法で問題を解決する必要があります。

私はそれが機能していると思っていましたが、あまり注意深くテストしておらず、些細なスモークテスト以外では使用していませんでした。

バックアップが R2 からファイルをダウンロードできない場合は、R2 からファイルを取得し、新しいバケットにプッシュしてから、データベースを手動で更新するために別のツールを使用する必要があります(remap rake タスクを使用してトピックを検索できると思います)。

これは複雑なプロセスであるため、R2、S3、および Discourse のアップロードについてかなりの知識が必要になります。フォーラムで解決策を得るのに十分な具体性をもって正確な問題を説明することは、おそらく困難でしょう。

「いいね!」 3

ファイルを手動でダウンロードし、サーバーにアップロードしています。その方法を尋ねている方のために、winscpプログラムでS3アカウントに接続できます。その後、ファイルを簡単にコンピューターにインポートできます。その後、ローカルにアップロードしてトピックを再作成しましたが、投稿が0件と表示されました。アクションを起こしませんでした。しばらく変更しましたが、何も見つかりませんでした。おそらく何かを見落としたのかもしれません。もう一度テストせずに言いたくありません。おそらく私のせいでした。もう一度試したら、結果を書きます。ありがとうございます。

「いいね!」 1

サーバーにファイルをアップロードすることは、問題の(簡単な)一部にすぎません。

アップロードは以下で確認できます。

cd /var/discourse
./launcher enter app
rails c
Upload.pluck(:url)

これにより、アップロードのURLが表示されます。次に、それらのアップロードすべてを、新しいバケットへの新しいパスを持つように変更する必要があります。remap コマンドを検索してみてください。機能すると思います。

これはどういう意味か分かりません。

「いいね!」 1

この部分をどのように行うか教えていただけますか?バックアップ設定のS3アップロードを含めるをfalseにするということでしょうか、それとも何か別のことでしょうか?

「いいね!」 1

アップロード用のS3互換オブジェクトストレージプロバイダーを構成するは、app.ymlに追加してS3を構成する方法を説明しています。その方法で行わなかった場合は、サイト設定のS3に関するすべての設定を解除し、その方法で行ってください。

その方法で行った場合は、それらの設定(またはuse_s3とアップロードバケットのみ)をコメントアウトしてください。

「いいね!」 1