2012-03-25 115 views
2

我正在嘗試使用Paperclip gem並將文檔存儲在Amazon S3上。使用S3的回形針

在我的Gemfile,我有:

gem 'paperclip' 
gem 'aws-s3' 

在我的模型,我有(用正確的桶和鍵):

has_attached_file :attach, 
    :storage => :s3, 
    :bucket => ENV['mybucket'], 
    :s3_credentials => { 
    :access_key_id => ENV['mykey'], 
    :secret_access_key => ENV['mysecretkey'] 
    } 

不過,我得到以下錯誤:

Missing credentials 

任何想法?

回答

1

檢查您的ENV['mykey']ENV['mysecretkey']環境變量是否已實際定義。

+0

我以爲我應該把我的代碼中的實際值。但是,當你提到變量時,我意識到我需要在Heroku上設置變量。現在它工作正常。謝謝。 – Reddirt 2012-03-28 19:39:46

1

我會做這樣的事情。在你的模型

has_attached_file :attach, 
:styles => { 
:thumb=> "100x100#"}, 
:storage => :s3, 
:s3_credentials => "#{Rails.root}/config/s3.yml", 
:path => ":attachment/:id/:style/:basename.:extension", 
:bucket => 'bucket_name' 

然後在地方建立在你的配置文件夾中的文件s3.yml下面的代碼有

development: 
    bucket: bucketname 
    access_key_id: xxx 
    secret_access_key: xxx 
test: 
    bucket: bucketname 
    access_key_id: xxx 
    secret_access_key: xxx 
production: 
    bucket: bucketname 
    access_key_id: xxx 
secret_access_key: xxx 

這是去這樣做的東西,像這樣一個更清潔的方式。