我希望将我的头像放在 aws 上以在 Heroku 应用程序上使用。我的设置似乎正确,但 rails 服务器无法启动。
我已经更新了我的carrierwave.rb 和avatar_uploader 以及我的宝石
carrierwave.rb
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => ENV['aws_access_key_id'],
:aws_secret_access_key => ENV['aws_secret_access_key'],
:region => 'us-east-2'
}
if Rails.env.test? || Rails.env.cucumber?
cpmfig.storage = :file
config.enable_processning = false
config.root ="#{Rails.root}/tmp"
else
config.storage = :fog
end
config.cache_dir = "#{Rails.root}/tmp/uploads"
config.fog_directory = ENV['s3_bucket_name']
end
module Carrierwave
module Minimagick
def quality(percentage)
img.quality(percentage.to_s)
img = yield(img) if block_given?
img
end
end
end
avatar_uploader.rb
class AvatarUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
include Sprockets::Rails::Helper
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :thumb do
process resize_to_fit: [250, 250]
end
def extension_whitelist
%w(jpg jpeg gif png)
end
end
gemfile
gem 'fog'
gem 'fog-aws'
gem 'carrierwave'
gem 'mini_magick'
当我启动服务器时,我收到错误:
$elandro-MBP:prjectAlpha etiennelandro$ rails s
Traceback (most recent call last):
29: from bin/rails:4:in `<main>'
28: from bin/rails:4:in `require'
27: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands.rb:16:in `<top (required)>'
26: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/command.rb:44:in `invoke'
25: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/command/base.rb:63:in `perform'
24: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
23: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
22: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
21: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands/server/server_command.rb:130:in `perform'
20: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands/server/server_command.rb:130:in `tap'
19: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands/server/server_command.rb:133:in `block in perform'
18: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/railties-5.1.6.2/lib/rails/commands/server/server_command.rb:133:in `require'
17: from /Users/etiennelandro/Documents/prjectAlpha/config/application.rb:9:in `<top (required)>'
16: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler.rb:114:in `require'
15: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `require'
14: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:65:in `each'
13: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `block in require'
12: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:76:in `each'
11: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:81:in `block (2 levels) in require'
10: from /Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:81:in `require'
9: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog.rb:12:in `<top (required)>'
8: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog.rb:12:in `require'
7: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers.rb:9:in `<top (required)>'
6: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers.rb:9:in `require'
5: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers/aws.rb:4:in `<top (required)>'
4: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers/aws.rb:5:in `<module:Fog>'
3: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers/aws.rb:7:in `<module:AWS>'
2: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-0.7.2/lib/fog/providers/aws.rb:7:in `extend'
1: from /Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-core-2.1.2/lib/fog/core/provider.rb:13:in `extended'
/Users/etiennelandro/.rvm/gems/ruby-2.5.3/gems/fog-core-2.1.2/lib/fog/core/provider.rb:13:in `[]=': no implicit conversion of Symbol into Integer (TypeError)
我试图检查日志,但我在那里了解的不多,除了 application rb 第 9Application.rb
行出现问题。第 9 行:Bundler.require(*Rails.groups)
你能看到我做错了什么吗?
这对我有用,非常简单,到目前为止没问题
require 'carrierwave/storage/fog'
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws'
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: Rails.application.secrets.aws_access_key_id,
aws_secret_access_key: Rails.application.secrets.aws_secret_access_key,
region: 'us-east-2',
}
config.fog_directory = Rails.application.secrets.s3_bucket_name
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句