2011-04-06 104 views
2

傢伙, 我在與S3有問題......我想配置S3這種方式與回形針的工作:的Heroku + S3 +回形針

has_attached_file:照片,

:storage => :s3, 

:bucket => 'gallerybucket', 

:styles => { :small => ["150", :png], :large => ["500", :png], :very_large => ['750x500>', :png] }, 


:path => ":rails_root/public/images/:class/:attachment/:id/:style_:basename.png", 


:url => "/images/:class/:attachment/:id/:style_:basename.png", 


:default_url => "/images/sem_imagem.gif", 

:s3_credentials => { 
    :access_key_id => ENV['ac'], 
    :secret_access_key => ENV['sc'] 
} 

但它總是告訴我這個錯誤。我不明白我在這裏做錯了什麼。有沒有一些配置丟失?

+0

你證實,AC與SC存儲在Heroku環境變量? – 2011-04-06 18:47:18

+0

現在,應用程序是在乳寧Heroku的,但是當我在本地運行它,它給了我這個錯誤:AWS :: S3 :: NoSuchKey公共#gallery_detail 顯示/家/ andrelima /工作區/ CEC /應用/視圖/公/gallery_detail.html.erb其中第15行產生: 指定的鍵不存在。 – user677982 2011-04-06 19:24:26

回答

0

聽起來像你爲你的heroku賬戶添加了變量,但你是否將它們添加到你的.bashrc文件?

export ACCESS_KEY_ID='acckeyid' 
export SECRET_ACCESS_KEY='secacckey' 

然後在你的代碼:

:s3_credentials => { 
    :access_key_id => ENV['ACCESS_KEY_ID'], 
    :secret_access_key => ENV['SECRET_ACCESS_KEY'] 
} 

我有一個blog post我寫的這個會談一點爲好。

+0

男人,我試過了,但沒有奏效。我把S3憑據在一個單獨的文件,s3.yml,這樣說:access_key_id = 'acckey' secret_access_key =「secacckey。我插入了您在bashrc文件中建議的這些行,但顯示了相同的錯誤。 – user677982 2011-04-07 18:56:14

+0

好的,我編輯了我的答案。我知道你有工作在Heroku上的增值經銷商,但我想我會去與更清晰的名稱和大寫它,以確保沒有與任何其他變量沒有混亂。希望它更清楚一點。當心你的變量和分配之間的空格。 Bash不喜歡那樣:VAR ='value' – mikewilliamson 2011-04-07 20:01:43

1

如果你沒有一個S3帳戶已經去得到一個位置:

http://aws.amazon.com/s3/

您需要添加到您的接觸模型:

應用程序/模型/ contact.rb

has_attached_file :picture, 
        :styles => {:large => "275x450>"}, 
        :storage => :s3, 
        :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
        :path => "appname/:attachment/:style/:id.:extension" 

請確保您的appname是您在heroku上的rails應用程序名稱。並確保您將圖片重命名爲任何您命名的圖片。

然後你需要一個配置文件在config/s3.yml

development: 
    bucket: bucked_name 
    access_key_id: key 
    secret_access_key: secret 

production: 
    bucket: bucked_name 
    access_key_id: key 
    secret_access_key: secret 

請確保您獲得正確的密鑰和密碼。

在你的寶石文件請確保您有這些寶石安裝:

gem "aws-s3", :require => "aws/s3" 
gem "paperclip" 
相關問題