Digital Ocean Spaces (S3) 「認証情報が設定されていないためリクエストに署名できません」

これが最終的に機能した方法です。

これらの設定は、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 areahooks セクションにあるこれらの設定も必要でした…

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

image

メモリ不足で停止しました。代わりにこれを試しました…

rake posts:rebake_uncooked_posts

メモリ不足で数回再起動し、その後再びメモリ不足になりました。もう一度実行しました。最終的に、すべてを調理し終えました。

100% まで実行が完了すると、古い投稿も新しい投稿も、すべてのリンクが最終的に S3 CDN URL パスを使用するようになりました。34062 個以上のアイテムで 65.9 GB のストレージ(バックアップは 9 GB 未満)です。

すべてがバックアップを含め、S3 で動作するようになったことに非常に満足しています。そういえば、今がバックアップを実行するのに良いタイミングかもしれません!

これが誰かの助けになれば幸いです。

頑張ってください!

「いいね!」 1