2

我正在尝试构建一个用户可以上传个人资料图片的应用程序。我正在尝试使用回形针和 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?我对没有错误感到困惑......

4

1 回答 1

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']
  }
}
于 2013-11-02T21:37:35.470 回答