本番サーバーとは異なる S3 バケットを使用するステージング サーバーのセットアップがありますが、ステージングでイメージを表示するには、バケット間でイメージを手動で同期する必要があります。数万の画像があるため (日々増加しています)、これは現実的ではありません。
プロダクション S3 からイメージを読み取り、ステージング S3 に新しいイメージを書き込むように Carrierwave を構成する方法はありますか (プロダクション イメージ ストアを汚染しないようにするため)。
更新: これを行う CarrierWave 用のカスタム ストレージ エンジンを作成しようとしました (この要点を参照してください。基本的には、行 228 を除いてフォグ ストレージ エンジンと同じです)、フェッチしようとするとこのエラーが発生します。画像:
Excon::Errors::SocketError (hostname does not match the server certificate (OpenSSL::SSL::SSLError)):
lib/carrier_wave/storage/dual_fog.rb:214:in `exists?'
lib/carrier_wave/storage/dual_fog.rb:228:in `public_url'
lib/carrier_wave/storage/dual_fog.rb:267:in `url'
その理由を知っている人はいますか?要旨のコードからわかるように、このソリューションでステージングから読み取り、ステージングでイメージが見つからない場合は本番環境にフォールバックできるようにしたいと考えています。ただし、すべての書き込み操作はステージングにのみ行う必要があります。