【问题标题】:aws s3 configuration syntax erroraws s3 配置语法错误
【发布时间】:2016-04-01 14:48:18
【问题描述】:

我正在尝试将 aws s3 与 heroku 和回形针 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 开发中心指示我使用如下所示的代码。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 存储桶有任何其他建议,请告诉我。谢谢。

【问题讨论】:

  • 您是否在 Heroku 应用程序中设置了 ENV?
  • 是的,它已设置为生产
  • 你试过没有 ENV 吗?
  • 该代码会是什么样子?

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


【解决方案1】:

如果您使用的是 Paperclip 的 master 分支,您应该使用 2.0.0 以上的 was gem,您可能需要进行一些更改才能使其正常工作。来自回形针文档:

Paperclip 现在与 aws-sdk >= 2.0.0 兼容。

如果您使用的是 S3 存储,aws-sdk >= 2.0.0 需要您制作一些 ?>small 变化:

  • 您必须设置s3_region
  • 如果您在任何地方明确设置权限,例如在 >initializer 中, 请注意,权限的格式从使用下划线 > 更改为 使用连字符。比如:public_read需要改成 public-read。

在我的一个项目中,我从较早的分支开始,然后升级并遇到了与推送到 heroku 时相同的错误。我更新了凭据以包含该地区,这为我解决了问题。

【讨论】:

    猜你喜欢
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 2017-04-15
    • 2015-08-03
    • 2017-12-16
    • 2018-11-19
    • 1970-01-01
    相关资源
    最近更新 更多