我正在尝试将aws s3与heroku和paperclip gem一起使用。
运行git push heroku master
时,我一直收到此语法错误(我隐藏了访问密钥)
# Command Line
remote: SyntaxError: /tmp/build_f1b59509e4d703e2f559ca42123c2f30/config/environments/production.rb:84: syntax error, unexpected tSYMBEG, expecting '}'
remote: :access_key_id = ENV['access_key'],
remote: ^
remote: /tmp/build_f1b59509e4d703e2f559ca42123c2f30/config/environments/production.rb:85: syntax error, unexpected '=>', expecting :: or '[' or '.'
remote: :secret_access_key = ENV['secret_key']
remote: ^
remote: /tmp/build_f1b59509e4d703e2f559ca42123c2f30/config/environments/production.rb:86: syntax error, unexpected '}', expecting keyword_end
Heroku devcenter指示我使用下面显示的代码。https://devcenter.heroku.com/articles/paperclip-s3
# config/environments/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']
}
}
我尝试过更改语法但我无法到达任何地方。如果您对如何将回形针宝石图像保存到s3存储桶有任何其他建议,请告诉我们。感谢。
答案 0 :(得分:0)
如果您正在使用Paperclip的主分支,那么您应该使用2.0.0以上的was gem,您可能需要进行一些更改才能使其工作。从回形针文档:
Paperclip现在与aws-sdk> = 2.0.0兼容。
如果您使用的是S3存储,aws-sdk> = 2.0.0要求您制作一些?>小 变化:
- 您必须设置
s3_region
- 如果您在任何地方明确设置权限,例如在>初始值设定项中, 请注意,权限的格式已从使用下划线>更改为 用连字符。例如,
:public_read
需要更改为public-read
。
在我的一个项目中,我已经开始使用较早的分支,然后进行升级,并且在推送到heroku时遇到了同样的错误。我更新了凭据以包含该区域并为我解决了问题。