これが最終的に機能した方法です。
これらの設定は、rake コマンドを正しく実行させるために app.yml 設定ファイル内にある必要がありました。これらが単に /admin/site_settings/ エリアにあるだけでは、rake コマンドは正しく実行されませんでした。私は次のエラーを受け取っていました。
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
設定はここからです… Configure an S3 compatible object storage provider for uploads
具体的には、各行の前にスペースを2つ使用して、カスタムではない Spaces の設定を使用しました。…
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: whatever
DISCOURSE_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
DISCOURSE_S3_CDN_URL: https://nyc3.cdn.digitaloceanspaces.com
DISCOURSE_S3_BUCKET: my-files
DISCOURSE_S3_BACKUP_BUCKET: my-files/my-backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
注: DISCOURSE_S3_REGION は、実際の S3 リージョン(例: us-west-1)と解釈される可能性のあるものではなく、文字通り「whatever」と言う必要があります。
また、## Plugins go here area の hooks セクションにあるこれらの設定も必要でした…
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
ここで前回問題が発生しました。これが設定され、再構築した後、ブラウザでフォーラムを起動しようとすると、このロード画面が表示されました。
これは、まだ更新されていないアセットを探しているためです。ここで、アプリ内から rake コマンドを実行する時が来ました…
./launcher enter app
rake s3:upload_assets
それが実行されると、アイテムの数が増加し、バケットに「assets」フォルダーが表示されました…
その後、フォーラムは正しくロードされ始めました。/admin/site-settings エリアに表示されている S3 関連の設定はこれだけです…
私は、古いパスの URL を新しい(非 CDN の)URL に更新するために、すべてのファイルをアップロードするためにこれを実行しました。
rake uploads:migrate_to_s3 --trace
それが完了した後、アイテムの数は3倍以上に増加しました。
私が気づいた唯一の点は、古い投稿の画像パスが S3 ENDPOINT URL を使用していたのに対し、新しく投稿された画像は S3 CDN URL を使用していたことです。
https:/my-storage.sfo3.digitaloceanspaces.com/
対
https:/my-storage.sfo3.cdn.digitaloceanspaces.com/
少なくともすべてが S3 を使用していたので、私は気にしませんでした。
しかし、これを試してみました…
rake posts:rebake

メモリ不足で停止しました。代わりにこれを試しました…
rake posts:rebake_uncooked_posts
メモリ不足で数回再起動し、その後再びメモリ不足になりました。もう一度実行しました。最終的に、すべてを調理し終えました。
100% まで実行が完了すると、古い投稿も新しい投稿も、すべてのリンクが最終的に S3 CDN URL パスを使用するようになりました。34062 個以上のアイテムで 65.9 GB のストレージ(バックアップは 9 GB 未満)です。
すべてがバックアップを含め、S3 で動作するようになったことに非常に満足しています。そういえば、今がバックアップを実行するのに良いタイミングかもしれません!
これが誰かの助けになれば幸いです。
頑張ってください!





