我正在尝试构建一个用户可以上传个人资料图片的应用。我正在尝试使用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上运行?我对缺乏错误感到困惑......
答案 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']
}
}