2010-10-23 31 views
2

我在Heroku,这是一个投资组合的东西,我在github上为潜在的雇主看,所以显然我不'不想将我的密钥粘贴在S3.yml文件中。我已经将Heroku和我的机器上的S3_KEY和S3_SECRET导出到我的环境中,并且ruby可以访问它们。但是,当我尝试上传,它给了我下面的错误:AWS :: S3 :: MissingAccessKey回形针,但我已经定义了两个

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

+0

有这个完全相同的问题......你能解决这个问题吗? – 2011-08-19 00:19:48

回答

0

的问题是因为在Heroku上的环境变量是不同的,在您的系统环境变量,所以可能会发生应用程序的工作只是在一个环境

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的配置:添加命令,这是Heroku DevCenter

描述
相关问题