6

本番サーバーとは異なる 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'

その理由を知っている人はいますか?要旨のコードからわかるように、このソリューションでステージングから読み取り、ステージングでイメージが見つからない場合は本番環境にフォールバックできるようにしたいと考えています。ただし、すべての書き込み操作はステージングにのみ行う必要があります。

4

1 に答える 1

2

S3 の使用方法はいくつかあります。バケットにドットがあり、SSL を実行したい場合は、URL を強制的に次のようにする必要があります: https://s3.amazonaws.com/staging.asset.domain.com/blah. https://yourdomain.com/blahamazon に証明書がないため、使用できません。https://staging.asset.domain.com.s3.amazonaws.com/blahまた、証明書は 1 レベルの深さしかないため、使用できません。(つまり、バケットにドットがない場合は機能します。)

于 2013-05-18T21:32:35.437 に答える