Rails 4,Carrierwave-aws,图像在本地上传到Amazon s3,但不在生产中(Openshift)

问题描述 投票:2回答:1

我在openshift上托管了Rails 4应用程序。 我正在使用carrierwave和carrierwave-aws gem处理图像上传。 当我在本地对其进行测试时,图像将按预期上传并显示到Amazon S3。 但是,在Openshift托管的生产服务器上,图像会上传到“ / uploads / images”而不是Amazon。 这是我的配置和Gemfile:

gem 'carrierwave'
gem 'carrierwave-aws'

在initializers / carrierwave.rb中

#config/initializers/carrierwave.rb
CarrierWave.configure do |config|

  config.storage    = :aws
  config.aws_bucket = 'mybucketname'
  config.aws_acl    = :public_read
  config.asset_host = 'https://mybucketname.s3-us-west-1.amazonaws.com'
  config.aws_authenticated_url_expiration = 60 * 60 * 24 * 365

  config.aws_credentials = {

    # Configuration for Amazon S3
    :provider              => 'AWS',
    :access_key_id     => 'myaccessid',
    :secret_access_key => 'mysecretkey',
    :region                => 'us-west-1',
  }

   config.storage = :aws
   config.cache_dir = "#{Rails.root}/tmp/uploads"                

end

在image_uploader.rb中,我还放了

 storage :aws

以防万一这有帮助:我以前使用过Fog,在本地也可以正常使用。 但是在生产中会出现Excon错误。 经过一番谷歌搜索后,我得出的结论是,载波电波是更好的选择。

ruby-on-rails amazon-web-services amazon-s3 openshift carrierwave
1个回答
-1
投票

使用宝石“雾”和宝石“载波”使用此代码段

CarrierWave.configure do|config|
 config.fog_credentials = {
  provider:              'AWS',
  aws_access_key_id:     'AWS_ACCESS_KEY',
  aws_secret_access_key: 'AWS_SECRET_KEY',
  region:                'region-name',
  host:                  's3.example.com',
  endpoint:              'https://s3.example.com'
 }
 config.fog_directory = 'name of the bucket'
 config.fog_public = 'false'
 config.fog_attributes = {'Cache-Control' => "max-age=#{365.to_i}" }
end
热门问题
推荐问题
最新问题