2013-05-07 1 views
1

그래서 실행중인 레일 3에서 이미지를 업로드하고 싶습니다. linode에서 호스팅되며 파일 업로드는 로컬에서 작동하지만 원격으로 시도하면 실패합니다. 나는 몇 가지 옵션을 읽었습니다,하지만 거의 모두는 다음과 같습니다이미지를 레일에서 linode로 업로드

CarrierWave.configure do |config| 

    if Rails.env.development? || Rails.env.test? 
    config.storage = :file 
    else 
    config.storage = :fog 
    config.fog_credentials = { 
     :provider    => 'AWS', 
     :aws_access_key_id  => 'some_access_key_id', 
     :aws_secret_access_key => 'some_secret_key', 
     :region     => 'eu-west-1' 
    } 
    config.fog_directory = 'bucket_name' 
    end 
end 

을하지만 난 linode 옵션으로 변경하는 경우 그 다음 나에게

ArgumentError (linode is not a recognized storage provider): 
    app/controllers/users_controller.rb:50:in `create' 

을 준 나는 SFTP 옵션을했다 :

CarrierWave.configure do |config| 
config.sftp_host = "my.host.com" 
config.sftp_user = "username" 
config.sftp_folder = "public_html/uploads" 
config.sftp_url = "http://my.host.com/uploads" 
config.permissions = 0666 
config.directory_permissions = 0777 
config.storage = :file 
config.sftp_options = { 
    :password => "mypass", 
    :port  => 22 
} 
end 

하지만 난 여전히 같은 오류 있어요 :

ArgumentError (linode is not a recognized storage provider): 
app/controllers/users_controller.rb:50:in `create' 

나는 aptana와 레일즈 3.2에서 git을 사용하여 작업 해본 다음 make change 할 때마다 capistrano로 전개한다. 나는 비슷한 질문을 여기에 Uploading files to Linode using CarrierWave 만났지 만 대답이 없습니다. 나는 그것이 carrierwave로 할 수 있는지 모르겠지만 어떤 제안을 취할 것입니다, 당신이 줄 수있는 모든 도움을 환영합니다.

감사합니다. 앱이 작은 하나 인 경우

답변

2

Linode 인스턴스에 20GB의 저장 공간이 있고 서버가 이미 Linode에서 실행 중이기 때문에 carrierwave 옵션 :file을 선택하려고합니다. 이미지를 (Linode) 서버의 파일 시스템에 저장하기를 원하기 때문입니다. S3과 같은 외부 스토리지 제공 업체 (Linode, 따라서 오류 메시지, 인정 carrierwave 스토리지 제공되지 않습니다)

시도 단지 개발 환경에 비해 같은 옵션을 떠나 :

CarrierWave.configure do |config| 
    config.storage = :file 
end 
+0

고마워 프랭크, 사실 그것이 제가 배포했을 때 가장 먼저하는 일이었습니다. 문제는 폴더를 만들거나 파일을 저장하지 않는 것이 었습니다 (로컬 또는 서버). ( – Jorge

+0

많은 좋은 결과를 얻은 후에 나는 그것을 처음부터 가져 왔고 공용 폴더 아래에서 작업하게 만들었습니다. 그렇지 않으면 원하는 폴더에 이미지를 업로드하지만 표시 할 image_tag에서는 절대 폴더가 검색 될 때도 공용 폴더를 검색합니다. 경로 제공. 감사합니다! – Jorge

0

에 .. 그럼 내가 사용 Openshift이 deploying rails app in openshift

openshift 데이터를 저장하는 한 영구적 인 데이터 디렉토리를 제공하고, 자유, 그리고 그것의 정말 쉬운 체크 아웃 ... 당신의 응용 프로그램을 배포하는 것이 좋습니다 거기에 배치하십시오.

+0

감사 Pandurang하지만, 응용 프로그램은 이미 배포되어 실행중인 프로덕션 환경의 서버에서 문제가 발생하면 사용자를 생성 할 때 사진을 업로드하려고합니다. – Jorge