已回答:为Heroku设置环境变量时,我拼错了AWS_SECRET_ACCESS_KEY
。我离开了第二个S.
我正在构建Rails 4应用程序,并使用Paperclip和AWS进行图像上传。每次我尝试上传图片时,都会在Heroku日志中获得AWS::Errors::MissingCredentialsError (Missing Credentials
。
在我的宝石文件中我有
gem 'paperclip'
gem 'aws-sdk'
在我的production.rb文件中,我有
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['S3_BUCKET_NAME'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
我有一个名为aws-sdk.rb的初始化程序,其中只包含此内容:
AWS.config({
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
})
在我的相关模型文件中我有
has_attached_file :picture,
:storage => :s3,
:s3_credentials => {
:bucket => 'MyBucketName',
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
},
styles: {
thumb: '100x100>',
square: '200x200#',
medium: '300x300>'
}
我没想到我需要使用has_attached_file方法明确包含s3凭据?无论如何我试过了。仍然没有工作。
当我运行heroku config
时,它会正确显示我的访问密钥,密钥ID和存储桶名称。
我不知道出了什么问题。