2011-04-06 3 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

당신이 교류와 SC는 Heroku가에 환경 변수로 저장되어 있음을 확인했다 : 당신의 보석 파일에서

는이 보석이 설치되어 있는지 확인? –

+0

이제 응용 프로그램이 heroku에서 실행되지만 로컬에서 실행할 때 다음 오류가 발생합니다. publiC# gallery_detail의 AWS :: S3 :: NoSuchKey /home/andrelima/workspace/cec/app/views/public 표시 /gallery_detail.html.erb where line # 15 raised : 지정한 키가 없습니다. – user677982

답변

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

+0

확인 내 대답을 편집했습니다. 나는 당신이 Heroku에서 일하고있는 그 vars를 가지고있다는 것을 알고 있습니다. 그러나 나는 다른 변수들과 혼동이 없도록 더 명확한 이름과 대문자로 갈 것이라고 생각했습니다. 잘만되면 그것은 조금 더 분명하다. 변수와 과제 사이에 공백이 있는지 조심하십시오. Bash는 그다지 좋아하지 않습니다 : VAR = 'value' – mikewilliamson

1

당신이 S3 계정이없는 경우 이미 여기에 하나를 얻을 이동 :

응용 프로그램/모델/contact.rb

:

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

당신은 연락처 모델에이를 추가해야

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

appname이 영웅의 레일 앱 이름인지 확인하십시오. 그리고 이름을 사진의 이름을 변경하지 않았는지 확인하십시오.

그러면 config 파일이 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"