9月3日更新这也不起作用.....
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS' # required
:aws_access_key_id => ENV["AWS_ACCESS_KEY_ID"] # required
:aws_secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"] # required
}
config.fog_directory = ENV["AWS_S3_BUCKET"] # required
end
我正在使用figaro gem存储我的aws凭据的env变量。
这是我的initializers / carrierwave.rb文件
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS' # required
:aws_access_key_id => ENV[AWS_ACCESS_KEY_ID] # required
:aws_secret_access_key => ENV[AWS_SECRET_ACCESS_KEY] # required
#:region => 'us-east-1', # optional, defaults to 'us-east-1'
#:host => 's3.example.com', # optional, defaults to nil
#:endpoint => 'https://s3.example.com:8080' # optional, defaults to nil
}
config.fog_directory = ENV[AWS_S3_BUCKET] # required
end
当我执行rails时,我收到此错误
/initializers/carrierwave.rb:6: syntax error, unexpected tSYMBEG, expecting '}' (SyntaxError)
:aws_access_key_id => ENV...
^
/Users/judyngai/tryagain_newproject/onemonth/lintong/config/initializers/carrierwave.rb:7: syntax error, unexpected =>, expecting keyword_end
:aws_secret_access_key => ENV[AWS_SECRET_ACCESS_KEY] ...
这是我的application.yml,由figaro gem生成
AWS_ACCESS_KEY_ID: "blahblahblahblah"
AWS_SECRET_ACCESS_KEY: "blahblahblahblah"
AWS_S3_BUCKET: "blahblahblahblah"
我做错了什么?
答案 0 :(得分:3)
你需要在你的密钥名称周围加上引号,并且需要用逗号分隔每个项目(就像任何Ruby哈希一样):
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"]
}
config.fog_directory = ENV["AWS_S3_BUCKET"] # required
end