0

Rails + Carrierwave + S3 で https 経由で画像を提供するにはどうすればよいですか?

現在、画像は次の場所から取得されています。

http://distilleryimage1.s3.amazonaws.com/f5314e1c866911e181b812314804a181_7.jpg

から来てほしい:

https://distilleryimage1.s3.amazonaws.com/f5314e1c866911e181b812314804a181_7.jpg

編集

画像が任意の数のホストから提供されていることがわかります。

distilleryimage11.s3distillery.s3、など...

プロトコルを設定する方法はありますか?

ここに私のイニシャライザがあります:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',
    :aws_access_key_id      => CONFIG['s3-key'],
    :aws_secret_access_key  => CONFIG['s3-secret'],
    :region                 => 'us-east-1'
  }
  config.fog_directory  = 'my_dir'
  # config.fog_host       = 'https://distilleryimage1.s3.amazonaws.com' # optional, defaults to nil
end
4

2 に答える 2

3

Carrierwave 0.7 では config.asset_host であることに注意してください。

.fog_host を使用すると、次のようになります。

config/initializers/carrierwave.rb:12:in block in <top (required)>': undefined methodfog_host=' for CarrierWave::Uploader::Base:Class (NoMethodError)

未定義のメソッド `fog_host='で説明されているように

HTHの将来の読者:)

于 2012-10-29T05:48:57.373 に答える
1

CarrierWave で Fog を使用している場合、Readme のドキュメントには、fog_host次のオプションを設定できると記載されています。

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',       # required
    :aws_access_key_id      => 'xxx',       # required
    :aws_secret_access_key  => 'yyy',       # required
    :region                 => 'eu-west-1'  # optional, defaults to 'us-east-1'
  }
  config.fog_directory  = 'name_of_directory'                     # required
  config.fog_host       = 'https://assets.example.com'            # optional, defaults to nil
  config.fog_public     = false                                   # optional, defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional, defaults to {}
end

あなたの場合、使用しますconfig.fog_host = https://distilleryimage1.s3.amazonaws.com

于 2012-05-27T22:29:52.040 に答える