【问题标题】:AWS::S3::MissingAccessKey in Paperclip but I've defined both回形针中的 AWS::S3::MissingAccessKey 但我都定义了
【发布时间】:2012-01-12 05:03:44
【问题描述】:

我在 Heroku,这是一个投资组合,我将其放在 github 上供潜在雇主查看,所以显然我不想将我的密钥粘贴在 S3.yml 文件中。我已经在 Heroku 和我的机器上将 S3_KEY 和 S3_SECRET 导出到我的环境中,并且 ruby​​ 可以访问它们。但是当我尝试上传时,它给了我以下错误:

AWS::S3::MissingAccessKey in Portfolio itemsController#update

You did not provide both required access keys. Please provide the access_key_id and the secret_access_key.

除了我的控制器线 # 之外,跟踪是无关紧要的,在我尝试上传文件之前它工作正常。这是我所拥有的:

class Asset < ActiveRecord::Base
  attr_accessible :image, :image_file_name, :image_content_type, :image_file_size, :portfolio_item_id, :order

  has_attached_file :image,
    :styles => {
      :thumb => "100x100#",
      :small => "300x300",
      :large => "600x600>"
               },
    :storage => :s3,
    :s3_credentials => {
      :access_key_id => ENV["S3_KEY"],
      :secret_access_key => ENV["S3_SECRET"]
                       },
    :bucket => "bucketybucket",
    :path => "portfolio"

end

有人知道这里发生了什么吗?我如何构造这个哈希错误?

哦,我已经关注了这个帖子,没有骰子:Paperclip and Amazon S3 Issue

【问题讨论】:

  • 遇到同样的问题...你能解决这个问题吗?

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


【解决方案1】:

同样的问题...

似乎 ENV const 在加载模块之前没有加载。通过使用文件参数解决 像这样

:s3_credentials => Rails.root.join('config/amazon_s3.yml')

在 amazon_s3.yml 中

access_key_id: 'your_key'
secret_access_key: 'your_sec_key'
bucket: 'somebucket'

此外,您可以使用 heroku config:add 命令设置环境变量,该命令在Heroku DevCenter

中有描述

【讨论】:

    【解决方案2】:

    问题是因为 heroku 中的环境变量与系统中的环境变量不同,因此可能会发生应用程序仅在一个环境中工作的情况

    【讨论】:

      猜你喜欢
      • 2011-10-30
      • 1970-01-01
      • 2017-04-24
      • 2018-07-06
      • 1970-01-01
      • 2016-06-26
      • 2011-04-15
      • 2019-12-18
      • 2012-11-06
      相关资源
      最近更新 更多