Heroku上传错误的Rails + Paperclip + S3

时间:2012-10-02 07:33:03

标签: ruby-on-rails heroku amazon-s3 paperclip

我正在尝试构建一个用户可以上传个人资料图片的应用。我正在尝试使用Paperclip和S3。

我已经在我的本地机器上工作了,但由于某种原因它在Heroku上不起作用。具体来说,没有任何内容上传到S3,但在Paperclip或S3的Heroku日志中也没有产生错误。这是我在日志中看到的内容:

2012-10-02T07:22:33+00:00 app[web.1]: [paperclip] Saving attachments.
2012-10-02T07:22:33+00:00 app[web.1]: [paperclip] saving profile_pictures/2/original.jpg
2012-10-02T07:22:33+00:00 app[web.1]: [paperclip] saving profile_pictures/2/thumb.jpg
2012-10-02T07:22:33+00:00 app[web.1]: [paperclip] saving profile_pictures/2/medium.jpg
2012-10-02T07:22:33+00:00 app[web.1]: [paperclip] saving profile_pictures/2/large.jpg

这是我的s3.yml文件的样子:

development:  
  access_key_id: XXXXXXX
  secret_access_key: XXXXXXX
  bucket: dev-bucket

test:
  access_key_id: XXXXXXX
  secret_access_key: XXXXXXX
  bucket: test-bucket

production:
  access_key_id: XXXXXXX
  secret_access_key: XXXXXXX
  bucket: prod-bucket

任何人都知道为什么这可以在我的开发机器上运行而不是在Heroku上运行?我对缺乏错误感到困惑......

1 个答案:

答案 0 :(得分:0)

您是否使用Heroku Toolbelt设置了环境变量?

$ heroku config:set AWS_BUCKET=**BUCKET NAME**
$ heroku config:set AWS_ACCESS_KEY_ID=***GET FROM AMAZON AWS***
$ heroku config:set AWS_SECRET_ACCESS_KEY=***GET FROM AMAZON AWS***

为此,您必须设置:

config.paperclip_defaults = {
  :storage => :s3,
  :s3_credentials => {
    :bucket => ENV['AWS_BUCKET'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  }
}