2011-01-11 4 views
3

나는 응용 프로그램에서 Imagemagick과 함께 Paperclip을 사용하고 있으며 Amazon S3를 사용하여 저장소에 저장하고 있습니다. 모든 것이 개발 단계에서 잘 작동합니다. 하지만 Heroku에서의 제작에서는 제대로 작동하지 않습니다.Imagemagick, Amazon S3 및 Heroku-Imagemagick & S3 작업용 클립이 있지만 데이터베이스에 Paperclip 필드가 설정되어 있지 않습니다. dev에 잘 작동

이미지가 Amazon S3에 업로드되고 썸네일 생성이 작동하여 클립, 이미지 및 S3 콤보의 일부가 정상적으로 작동합니다.

개발에
imagestore_file_name: 
imagestore_content_type: 
imagestore_file_size: 
imagestore_updated_at: 

는,이 모두 채워 얻을 수 있지만 Heroku가에 생산 :하지만 어떤 이유로 종이 클립 특정 모델 필드가 작성되지 않아요. 프로덕션 앱 (Heroku)에 이미지를 표시하려고하면 S3에 분명히 있더라도 누락되었다고 표시됩니다. 이 오류의 원인은 무엇입니까? 읽어 주셔서 감사합니다.

세부 사항 :

ruby 1.8.7 
Rails 3.0.1 
Stack: bamboo-mri-1.9.2 

편집 : 여기

는 클래스입니다. Image 클래스는 ActiveRecord :: Base를 확장 한 Media를 확장합니다.

imagestore_file_name: 
    imagestore_content_type: 
    imagestore_file_size: 
    imagestore_updated_at: 
다음은
class Image < Media 

    attr_accessor :imagestore_file_name 
    attr_accessor :imagestore_content_type 
    attr_accessor :imagestore_file_size 
    attr_accessor :imagestore_updated_at 


    has_attached_file :imagestore, 
     :storage => :s3, 
     :s3_credentials => "#{RAILS_ROOT}/config/amazon_s3.yml", 
     :path => "/:style/:filename", 
     :styles => { :medium => "800", :thumb => "150" } 


end 

는 관련 Heroku가 로그 여기
Parameters: {"authenticity_token"=>"a9+UnIlVH5HRetoN45IlGlGYoeEkpqQ1Qskpe4EGuHw=", "media_input"=>"", "imagestore"=>#<File:/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/RackMultipart20110110-17158-10fuv0p>, "type"=>"uber", "name"=>"Star Wars", "detail"=>""} 
[paperclip] identify -format %wx%h '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if.jpg[0]' 2>/dev/null 
[paperclip] convert '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if.jpg[0]' -resize "800" '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if20110110-17158-ta9egy' 2>/dev/null 
[paperclip] identify -format %wx%h '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if.jpg[0]' 2>/dev/null 
[paperclip] convert '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if.jpg[0]' -resize "150" '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if20110110-17158-13448fs' 2>/dev/null 
[paperclip] Saving attachments. 
[paperclip] saving /original/starWarsart2.jpg 
[paperclip] saving /medium/starWarsart2.jpg 
[paperclip] saving /thumb/starWarsart2.jpg 
[paperclip] Saving attachments. 
Redirected to !!my site url is here!! 
Completed 302 Found in 1029ms 

은 생성 된 이미지 레코드의 관련 필드이다 (나는 가끔에게 Heroku에 알려 어려울 수 있다고 생각)입니다

개발 중에이 필드에는 데이터가 있으며 이미지를로드 할 수 있습니다. 그러나 생산 단계에 있지는 않습니다. 당신의 도움을 주셔서 감사합니다.

+0

필자는 이와 비슷한 것을 발견하지 못 했으므로 확실하게 말할 수는 없지만, 다른 S3 버킷을 사용하여 개발과 개발에 활용할 수 있는지 확인 했습니까? 그렇지 않으면, 클립 클립 첨부 파일을 보유하고있는 모델의 코드를 포함 할 수 있습니까? 또한 실제로 이미지를 업로드하려고 할 때의 로그 파일을 보는 데 도움이됩니다. – DanneManne

+0

죄송합니다. 처음부터 포함시켜야합니다. 질문에 편집했습니다. 당신의 도움을 주셔서 감사합니다. – ben

+0

개발 환경에서 수행 할 수 있지만 서버를 프로덕션 모드로 실행하고 있습니까? –

답변

4

문제는 paperclip 속성에 대해 attr_accessor를 지정했다는 것입니다. 그건 필요하지 않습니다. 내 모델에 그 라인을 추가 할 때 실제로 당신과 같은 문제가 있습니다. 그래서 그 줄을 지우는 것으로 충분할 것입니다.

+0

그게 다야. 나는 당신이 그것을해야했다는 것을 어딘가에서 읽었지만 나는 그렇지 않을 것이라고 생각한다. 도와 주셔서 대단히 감사합니다. – ben